AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Thema durchsuchen
Ansicht
Themen-Optionen

Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

Ein Thema von Evian · begonnen am 6. Sep 2003 · letzter Beitrag vom 6. Nov 2007
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Poldy

Registriert seit: 19. Okt 2007
12 Beiträge
 
#31

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 19. Okt 2007, 15:19
hallo,
wollte dieses thema nochmal aufgreifen..
für mich ist delphi noch komplett neu, sprich genau diese aufgabe ist meine erste kleine funktion die ich schreiben soll...
da ich aber nun nicht nur einfach das ergebnis haben möchte sondern auch gerne verstehen möchte was genau wo passiert wäre es klasse wenn mir das jemand von euch mal kurz erklären könnte
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#32

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 19. Okt 2007, 17:38
Hallo Poldy, willkommen in der DP . Da das meiste bestimmt bereist erklärt wurde, zeige ich Dir nur ein Beispiel mit einer Zahl (hier 125), einer Vergleichszahl und einem Ergebnisstring:
Delphi-Quellcode:
StringVariable ist noch leer, Vergleichszahl ist 1

01111101 //zu untersuchende Zahl
00000001 //Vergleichszahl
--------
       1

Stringvariable := '1' + Stringvariable;// -> Stringvariable = '1'
Vergleichszahl := Vergleichszahl * 2;


01111101 //zu untersuchende Zahl
00000010 //Vergleichszahl
--------
      0

Stringvariable := '0' + Stringvariable;// -> Stringvariable = '01'
Vergleichszahl := Vergleichszahl * 2;


01111101 //zu untersuchende Zahl
00000100 //Vergleichszahl
--------
     1

Stringvariable := '1' + Stringvariable;// -> Stringvariable = '101'
Vergleichszahl := Vergleichszahl * 2;


usw.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Poldy

Registriert seit: 19. Okt 2007
12 Beiträge
 
#33

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 13:39
danke für deine antwort aber um ehrlich zu sein versteh ich das mal so garnicht

also am sinnvollsten scheint mir folgende lösung zu sein

function IntToBin(Value: Word): String; (wofür steht das word? ist das eine art string?)
const (welche bedeutung hat const? ist damit eine constante gemeint?)
BIN_VALUE: array[0..1] of Char = ('0', '1');
begin
Result := '';
while Value > 1 do
begin
Result := BIN_VALUE[Value mod 2] + Result;
Value := Value div 2;
end;
Result := BIN_VALUE[Value mod 2] + Result;
end;

mein problem hier bei ist, dass die sprache für mich halt komplet neu ist und ich lediglich ein wenig javakenntnisse habe...
hilfreich wäre hierbei für mich wenn mir jemand zeile für zeile genau erklären würde was dort passiert.. ich weiss das da ein arraylist angelegt wird die mit char gefüllt ist und diese entweder 1 oder 0 sind..
anschliessend beginnt dann eine while schleife... diese verstehe ich nicht komplet lediglich das da der value nach einer prüfung durch 2 geteilt wird..
anschliessend wird dann das result ausgegeben.. wie genau sich das zusammensetzt versteh ich allerdings auch nicht...
wenn mir da jemand noch ein wenig nachhilfe gben könnte wäre das wirklich sehr nett
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 16:05
Lies Dir das hier erst einmal gründlich durch, dann wirst Du mein Beispiel auch eher verstehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Poldy

Registriert seit: 19. Okt 2007
12 Beiträge
 
#35

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 16:25
ok.. also das verstehe ich jetzt schon so im groben.. hatten die tage auch in der gruppe die sachen mit and or bzw xor besprochen allerdings verstehe ich da noch nicht den zusammenhang zu meiner aufgabe...
hierbei gehts darum das wir ein programm schreiben sollen das jede binärzhl in eine dualzahl umwandelt und dafür soll ich die methode schreiben... dabei ist es doch für mich nicht interessant ob ich and or bzw xor habe oder bin ich jetzt völlig auf dem falschen dampfer?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#36

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 16:27
Wie willst Du das denn herausfinden, ob ein Bit gesetzt ist? Du musst schon bitweise mit and vergleichen. So habe ich es oben gezeigt (vom niederwertigsten zum höchstwertigen Bit).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Poldy

Registriert seit: 19. Okt 2007
12 Beiträge
 
#37

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 16:40
ah.. so langsam verstehe ich dich.. also zumindest den grundgedanken..

aber wie genau muss ich dann den quellcode schreiben um die binärzahl in eine dualzahl umzuwandeln?


in dem tutorial hast du es ja allgemein gehalten... was ich dabei nicht verstehe ist dein setzen der constanten...also lesen =1...

sorry bin wirklich blutiger anfänger und habe weder ein tolles dephibuch noch ein komplettes tutorial... mal abgesehen avon das ich leider nicht die zeit habe das komplett zu durchzuarbeiten...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#38

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 16:53
Zitat von poldy:
aber wie genau muss ich dann den quellcode schreiben um die binärzahl in eine dualzahl umzuwandeln?
Das kann man natürlich nicht allgemeingültig sagen, jeder hat da eine andere Vorgehensweise. Um mein Beispiel noch einmal aufzugreifen:
Du schreibst Dir am Besten eine Funktion dafür.function ZahlAsBinaryString(Zahl: Cardinal): String; Diese erwartet eine ganze Zahl vom Typ Cardinal (32 Bit ohne Vorzeichen) und gibt einen String zurück. In dieser Funktion deklarierst Du die lokale Variable Vergleichszahl (auch Cardinal) und belegst diese mit 1 (für das niederwertigste Bit). Nun tust Du in einer Schleife Folgendes: binärer and-Vergleich von Zahl und Vergleichszahl. Kommt dabei Vergleichszahl heraus, ist das Bit gesetzt und an das Funktionsergebnis (Result) wird links '1' angefügt, ansonsten '0'. Anschließend muss Vergleichszahl verdoppelt werden für das nächsthöhere Bit. Du kannst die Schleife beenden, wenn z.B. die Länge von Result (das ja ein String ist) der Speichergröße der Eingangszahl multipliziert mit 8 (weil 1 Byte = 8 Bit) entspricht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Poldy

Registriert seit: 19. Okt 2007
12 Beiträge
 
#39

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 16:58
ok.. nun bin ich wieder bei den bömischen dörfern.... was ist denn bitte ein cadinal?
wie würde denn deine konkrete funktion zum umwandeln aussehen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#40

Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl

  Alt 21. Okt 2007, 17:06
Obwohl ich es eigentlich nicht tun wollte, hier mal die Umsetzung (normalerweise würde ich es kürzer machen, aber dann verstehst Du es bestimmt nicht):
Delphi-Quellcode:
function ZahlAsBinaryString(Zahl: Cardinal): String;
//Variable Vergleichszahl deklarieren
var Vergleichszahl: Cardinal;
begin
  //Vergleichszahl und Rückgabewert vorbelegen
  Vergleichszahl := 1;
  Result := '';
  //Schleife (Ende, wenn das Ergebnis 32 Stellen hat)
  while Length(Result) < SizeOf(Cardinal) * 8 do
    begin
      //binärer Vergleich
      if (Zahl and Vergleichszahl) = Vergleichszahl then
        Result := '1' + Result
      else
        Result := '0' + Result;
      //Vergleichszahl verdoppeln
      Vergleichszahl := Vergleichszahl * 2;
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz