Forum: Offtopic hexadezinal rechnen


von Jan K. (tester33)


Lesenswert?

Hallo alle zusammen kann mir jemand erklären wie man 0x1000 -1 rechnet ?
Als Ergebnis soll 0x0fff raus kommen

keine Ahnung wie man das macht

: Verschoben durch User
von m.n. (Gast)


Lesenswert?

Wie rechnest Du denn 1000 - 1?

von zufaulzumanmelden (Gast)


Lesenswert?

https://de.wikipedia.org/wiki/Subtraktion

… im Grunde nimmt man die Ausgangszahl her, und zieht einmal 1 ab. Dann 
kommt man auf 0xfff.

von Jan K. (tester33)


Lesenswert?

1000-1 = 999 :)

Aber ich verstehe es trotzdem nicht wie die da 0x0fff kriegen :)

: Bearbeitet durch User
von karadur (Gast)


Lesenswert?

16*16*16-1=4095=0xfff

von nachrechner (Gast)


Lesenswert?

Jan K. schrieb:
> Aber ich verstehe es trotzdem nicht wie die da 0x0fff kriegen

Wer ist "die"?

von zufaulzumanmelden (Gast)


Lesenswert?

Naja, stell dir halt vor, du hättest 0x10 Äpfel, und nimmst einen weg. 
Dann bleiben 0xF Äpfel übrig. Ist nun nicht soo schwer :)

von Einer K. (Gast)


Lesenswert?

nachrechner schrieb:
> Wer ist "die"?
Alle außer "er"!

Jan K. schrieb:
> 1000-1 = 999 :)
Genau so, auch in Hex!

Nur, das 10-1 im Hexadezimalsystem f ergibt
0x10-0x1=0xF

von Yalu X. (yalu) (Moderator)


Lesenswert?

Kannst du im Hexadezimalsystem zählen? Wann ja, dann zähle einfach von
0x1000 einen Schritt rückwärts. Bei 0x1000-2 zählst du zweimal rückwärts
usw.

Bei größeren Subtrahenden wird die Zählmethode ineffizient. Du gehst
dann besser so vor wie beim schriftlichen Subtrahieren im Dezimalsystem:

  https://de.wikipedia.org/wiki/Subtraktion#Erg%C3%A4nzungsverfahren

Du musst dabei nur berücksichtigen, dass die Ziffern statt von 0 bis 9
von 0 bis F gehen und die Zahl 1x nicht zehn+x, sondern sechzehn+x
bedeutet.

Ansonsten kannst du natürlich die Operanden ins Dezimalssystem umrechnen
und dort die Subtraktion durchführen.

von zufaulzumanmelden (Gast)


Lesenswert?

> Ansonsten kannst du natürlich die Operanden ins Dezimalssystem umrechnen

… noch einfacher geht‘s, wie ich finde, im Binärsystem. Für jede Stelle 
eine Vierergruppe (0xF → 1111, 0x1 → 0001, etc.) und ab dafür.

von Jan K. (tester33)


Lesenswert?

danke

von Reiner O. (elux)


Lesenswert?

Naja, 0x1000 ist ja auch nicht 1000 in dez, sondern 4096.
Nimm Dir einen Rechner mit Bitanzeige, dann wird es deutlicher...

von Jan K. (tester33)


Lesenswert?

Ich dachte F wäre 15 in Hexa ?

von Rolf M. (rmagnus)


Lesenswert?

Arduino Fanboy D. schrieb:
> Jan K. schrieb:
>> 1000-1 = 999 :)
> Genau so, auch in Hex!

Ja. Die Ziffern gehen eben nur nicht von 0 bis 9, sondern von 0 bis F. 
Stell dir einfach vor, du hättest sechzehn Finger. Dann würdest du das 
ganz intuitiv so rechnen ;-)

von Sales Manager (Gast)


Lesenswert?

> Nimm Dir einen Rechner mit Bitanzeige, dann wird es deutlicher...

Der klassische TaRechner dazu: HP16C ('80er Jahre)
Heute nur noch als Replika DM16L von swissmicros.com produziert.

Andere, auch bloss als Äpp, tun's natürlich auch.

von Jan K. (tester33)


Angehängte Dateien:

Lesenswert?

Nur so eine Frage Leute wieso steht hier in der Tabelle bei wiki 15 für 
F ?

von Rolf M. (rmagnus)


Lesenswert?

Wieso nicht? Was hättest du denn erwartet?

von ueberdurchblick (Gast)


Lesenswert?

Jan K. schrieb:
> Nur so eine Frage Leute wieso steht hier in der Tabelle bei wiki 15 für
> F ?

Jan K. schrieb:
> Ich dachte F wäre 15 in Hexa ?

von Sales Manager (Gast)


Lesenswert?

Jan K. schrieb:
> Nur so eine Frage Leute wieso steht hier in der Tabelle bei wiki 15 für
> F ?

Was sollte denn d.M.n. sonst da stehen?
Und beim letzten Symbol im Zehnersystem? (='9')

von Jan K. (tester33)


Lesenswert?

Ihr hattet ja oben geschrieben das 9= f ist daher :).
Das irritiert mich

von zufaulzumanmelden (Gast)


Lesenswert?

0x10 == 16 == 0001 0000, eins weniger → 0x0F == 15 == 0000 1111

von Rolf M. (rmagnus)


Lesenswert?

Jan K. schrieb:
> Ihr hattet ja oben geschrieben das 9= f ist daher :).
> Das irritiert mich

Nein, das hat keiner geschrieben.

Im Dezimalsystem gibt es folgende Ziffern:
1
0 1 2 3 4 5 6 7 8 9

Im Hexadezimalsystem gibt es dagegen:
1
0 1 2 3 4 5 6 7 8 9 A B C D E F

Also sechzehn statt zehn. Und F(hex) + 1(hex) gibt 10(hex). Diese 
Berechnung entspricht 15(dez) + 1(dez) = 16(dez).

von Volker S. (vloki)


Lesenswert?

Rolf M. schrieb:
> Stell dir einfach vor, du hättest sechzehn Finger. Dann würdest du das
> ganz intuitiv so rechnen ;-)

Sollten da nicht fünfzehn reichen?

von Rolf M. (rmagnus)


Lesenswert?

Volker S. schrieb:
> Rolf M. schrieb:
>> Stell dir einfach vor, du hättest sechzehn Finger. Dann würdest du das
>> ganz intuitiv so rechnen ;-)
>
> Sollten da nicht fünfzehn reichen?

Hmm, an sich ja. Im Dezimalsystem würden dann wohl auch 9 Finger 
reichen.

von Volker S. (vloki)


Lesenswert?

Jo, so sehr ich das auch;-)

<edith> als die Leute auf die Idee mit den polyadischen Zahlensystemen 
gekommen sind, war es wohl zu spät ein 11er System zu etablieren...

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Volker S. schrieb:
> Sollten da nicht fünfzehn reichen?

Nee..
Man braucht schon 16 !

Für den Anfang, würden auch 8 reichen....
Oder 4 ....

Optimal wäre sicherlich 4 Hände mit je 4 Finger.

von Rainer V. (a_zip)


Lesenswert?

Arduino Fanboy D. schrieb:
> Optimal wäre sicherlich 4 Hände mit je 4 Finger

...während dem Computer 1 Hand mit einem Finger reichen würden :-)

von Volker S. (vloki)


Lesenswert?

Das ist dann aber kein Abzählsystem mehr.

von Rolf M. (rmagnus)


Lesenswert?

Rainer V. schrieb:
> ...während dem Computer 1 Hand mit einem Finger reichen würden :-)

8 Hände mit jeweils einem Finger wären schon besser. Oder bei aktuellen 
Systemen 64 Hände.

: Bearbeitet durch User
von karadur (Gast)


Lesenswert?

Plus Carry

von Volker S. (vloki)


Lesenswert?

Rolf M. schrieb:
> 64 Hände

Da wär man aber ganz schön Arm dran...

von Rainer V. (a_zip)


Lesenswert?

karadur schrieb:
> Plus Carry

Carry macht der dicke Zeh...oder die Nase :-)

von avantasia (Gast)


Lesenswert?

Vielleicht hilft Dir das hier:

http://mikrocontroller.rahm-home.de/bin_dez.htm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.