if (val & ~0xff) ist doch immer false?
-
vielleicht gibt hexval(x) ja z.B. -1 zurück wenn x keine hex-digit ist? dann würde es nämlich sinn machen.
-
Rüdiger hat es ja erklärt.
Ich habe nicht besonders gut nachgedacht und das 0xff auf 0xffff erweitert (bzw. alles 1).
Das war das Problem. Jetzt ist es klar
-
ihoernchen schrieb:
Ich habe nicht besonders gut nachgedacht und das 0xff auf 0xffff erweitert (bzw. alles 1).
stell dir einfach vor was ~1, ~2, ~3, usw. sein könnte, also nicht 0. warum sollte ~255 da eine ausnahme machen?
-
Das hab ich nicht verstanden.
~255 ist null, sofern ich einen 8 bit Datentyp hab.Mache ich das auf einen Datentyp > 8 bit habe ich eine Zahl > 255 (bei einem Startwert von 255).
Mein Problem war, dass ich das 0xff in Gedanken auf 0xffff erweitert habe und nicht auf 0x00ff.
-
mal eine ganz dummer frage: wofür brauchst du das?
-
ihoernchen schrieb:
Das hab ich nicht verstanden.
~255 ist null, sofern ich einen 8 bit Datentyp hab.und ~1 ist null, wenn du einen 1-bit datentyp hast. also hast du's ja doch verstanden.
-
ghorst schrieb:
mal eine ganz dummer frage: wofür brauchst du das?
fricky schrieb:
ihoernchen schrieb:
Das hab ich nicht verstanden.
~255 ist null, sofern ich einen 8 bit Datentyp hab.und ~1 ist null, wenn du einen 1-bit datentyp hast. also hast du's ja doch verstanden.
Also die Definition des Komplements sollte folgendem entsprechen x - ~x = 0, sonst wäre es ja nicht das Komplement, somit wäre bei einem 1-Bit Typ das Komplement gerade der Wert selbst.
-
Äh?? schrieb:
Also die Definition des Komplements sollte folgendem entsprechen x - ~x = 0, sonst wäre es ja nicht das Komplement, somit wäre bei einem 1-Bit Typ das Komplement gerade der Wert selbst.
da kann irgendwas nicht stimmen. woher ist diese definition?
-
Äh?? schrieb:
Also die Definition des Komplements sollte folgendem entsprechen x - ~x = 0,
x**+**~x=0
-
Nur im Einerkomplement.
-
~ flippt einfach alle bits, was das für auswirkungen auf die zahl hat schreibt der standard AFAIK nicht vor.
normalerweise wird two's complement verwendet, also -x == ~x + 1 wenn ich mich jetzt nicht irre
-
hustbaer schrieb:
~ flippt einfach alle bits, was das für auswirkungen auf die zahl hat schreibt der standard AFAIK nicht vor.
normalerweise wird two's complement verwendet, also -x == ~x + 1 wenn ich mich jetzt nicht irre
So siehts aus, dann ist nämlich a - b == a + ~b + 1.