Binäres/Hexadezimales Subtrahieren

Hi Ihr,

ich stehe mal wieder auf dem Schlauch. Vielleicht kann mir jemand helfen.

Nehmen wir an, ich habe die hexadezimale Zahl 0000 0000. Von dieser soll die Hex-Zahl FFFF FFF0 abgezogen werden. Wären das keine 32-Bit großen Zahlen, könnte ich ja einfach in den dezimalen Wert umrechnen und dann damit rechnen. Es gibt aber doch 'ne Möglichkeit, mit Hex-Werten zu rechnen, oder sehe ich das falsch?

Das Ergebnis ist 0000 0010. Aber wieso? Wie kommt man darauf?

Über Hilfe wäre ich sehr dankbar.

Janni *confused*

Moien

Nehmen wir an, ich habe die hexadezimale Zahl 0000 0000. Von
dieser soll die Hex-Zahl FFFF FFF0 abgezogen werden.

Und da seh ich shcon das erste Problem: du arbeitest mit negativen Zahlen. Wie wird das Vorzeichen dargestellt ? 2K-Zahlen ? VorzeichenBit ?

Wären das
keine 32-Bit großen Zahlen, könnte ich ja einfach in den
dezimalen Wert umrechnen und dann damit rechnen.

Was hält dich davon ab ?

Es gibt aber
doch 'ne Möglichkeit, mit Hex-Werten zu rechnen, oder sehe ich
das falsch?

Klar. An sich geht’s genau so wie bei dem 10’er-System. Oder dem binaren. Also so: http://en.wikipedia.org/wiki/Binary_numeral_system

cu

Also ich würde es so machen (wahrscheinlich unendlich kompliziert):

0000 0000hex in binär umrechnen ergibt:
0000 0000 0000 0000 0000 0000 0000 0000

FFFF FFF0hex in binär:
1111 1111 1111 1111 1111 1111 1111 0000

Nun einfach von dem 2. Wert das 2er-Komplement bilden:
0000 0000 0000 0000 0000 0000 0001 0000
Zum ersten Wert dazuaddieren und wieder in Hex umwandeln, ergibt:
0000 0010hex

Hoffe, geholfen zu haben.

Sven