int to char
-
Hallo Leute,
ich möchte in einem charchar charWert[5]; long long longWert = 0xababab1 ;einlesen.
Und zwar möchte ich das die 1 in charWert [5] in nullten Bit steht
Also muss charWert[5] = 128 sein.
Kann mir vielleicht jemand helfe?
-
Dann musst du die Bits in den einzelnen Bytes eben umdrehen.
Du willst übrigens, dass sich die 1 im letzten, also höchstwertigsten Bit befindet.
-
borhan schrieb:
Hallo Leute,
ich möchte in einem charchar charWert[5]; long long longWert = 0xababab1 ;einlesen.
Und zwar möchte ich das die 1 in charWert [5] in nullten Bit steht
Also muss charWert[5] = 128 sein.
Kann mir vielleicht jemand helfe?Die Bits werden üblicherweise anders nummeriert:
76543210 x------- --> 128 76543210 -------x --> 1Bist Du Dir sicher, dass 0xababab1 die Zahl ist, die Du meinst? Ist es vielleicht 0xababab80 ?
a b a b a b 1 0x0ababab1 = 0000 1010 1011 1010 1011 1010 1011 0001 a b a b a b 8 0 0xababab80 = 1010 1011 1010 1011 1010 1011 1000 0000Gruß,
SP
-
Hallo Sebastian,
erst Mal danke für dein Antwort.
die Zahl ist 0xabababab1. Aber Du hast recht, die nacher in charWert [4] muss ist natürlich 0xabababab80 weil ich möchte dass die ersten 32 Bit in charWert [0] bis charWert[3] stehen muss und das 33 Bit also die 1 sollte in char Wert [4] = 10000000. daher ist das was du meinst richtig. Aber wie kann ich das am einfachsten realisieren.
-
borhan schrieb:
die Zahl ist 0xabababab1.
Du kannst nicht einfach eine 1 in der Hex-Darstellung einer 32bit-Zahl dranhängen und glauben, es käme eine 33bit Zahl raus!
0xABABABAB * 16 + 1 = 0xABABABAB1 (36 bits) 0xABABABAB * 2 + 1 = 0x157575757 (33 bits)Gruß,
SP
-
Danke, stimmt das ist mein Fehler gewesen habe es schon verbessert. Funktioniert jetzt auch schon fehlerfrei.