Thema: Delphi Vorzeichen entfernen

Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#13

Re: Vorzeichen entfernen

  Alt 29. Aug 2007, 22:43
gut, dann hatte ich das mal falsch verstanden,
dachte bei signed wird das vorzeichen im höchstwertigen Bit gespeichert und der rest bleibt...
jetzt hab ich mich aber mal blamiert...

aber jetzt wo ihrs sagt, fällt mir grade ein, dass ich beim Zerlegen von Binärdateien schon drüber gestolpert bin, dass 0xFFFFFFFF = -1 ist.

stimmt das
if x<0 then x:=not x + 1; immer? also bei allen signed datentypen?

auch wenn mir der asm-weg noch bisschen Probleme bereitet, trotz asm buch vor mir...

wenn ich das richtig verstehe, müsste cdq ja das höchstwertige bit von eax in alle bits von edx schreiben....

also
Code:
edx      eax
$FFFFFFFF $FFFFFFFF
bzw.
Code:
$00000000 $7FFFFFFF
xor setzt dann bei ersterem eax auf $0, da eax=edx.
jetzt subtrahiere ich edx von eax also $0-$FFFFFFFF...und da kommt 1 raus?

beim zweiten wird bei xor einfach nur edx nach eax kopiert (unterste 31 bit verschieden), wenn ich nun edx von eax subtrahiere kommt doch 0 raus

wo hab ich da jetzt grade den denkfehler?

Gruß Frank
  Mit Zitat antworten Zitat