PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BOOL Array HEX-Zahl Umwandeln?



~Gh05t~
13-02-2004, 16:03
Hallo,
ich habe hier ein BOOL Array mit 128 Feldern.
Dieses möchte ich mit einem HEX Wert ausdrücken.
Wie mache ich das?

PS: Ich arbeite gerade mit VC++ 6

nobody0
13-02-2004, 16:11
Einfach mit einer for-Schleife die Summe (der Bits) bilden und fertig.
Bei der Ausgabe muss dann der specifier entsprechend sein, z. B. %x.

~Gh05t~
13-02-2004, 16:29
hmmm... was meinst du mit Summe? kannst du mir n beispiel geben?

nobody0
13-02-2004, 16:42
Kommt drauf an wie es dargestellt werden soll.
Vermutlich willst Du nicht die Summe sondern ein Bitfeld, also so:



unsigned char a[16] = {0}, bit, byte;

for(byte=0; byte<16; byte++)
for(bit=0; bit<8; bit++)
if (bOOl[bit + 8*byte])
a[byte] |= 1 << bit;

~Gh05t~
13-02-2004, 16:53
hmmm... prinzipiell verstanden, außer die letzte Zeile.
Warum teile ich in Bytes ein? mit einer HEX-Stelle kann man doch nur 4 Bit BIN darstellen...
Außerdem bekomme ich ja so einen 16-Stelligen String raus... normal müssten es doch 32 sein, oder nicht?

PS: Ich brauche KEIN Bitfeld... einfach nur ne Varriable in der die HEX-Zahl steht, so dass ich sie in ne HEX-File schreiben kann(das ist das ziel der sache).

nobody0
13-02-2004, 18:27
Ob eine Zahl HEX ist oder dezimal oder binär oder octal oder klingonisch ist interpretationssache; beim Taschenrechner kann man das auswählen und so das angezeigte Format wählen. Ob eine Datei HEX ist oder sonstwas ist deshalb ebenso Interpretationssache.
Ein Byte ist hexadezimal zweistellig (0x00 ... 0xff), so dass insges. 32 Stellen ausgegeben weden.

Allgemein gibt´s noch Komplizierungen, weil auch Stuffing- u. Paritätsbits auch in den ganzzahligen Datentypen sein dürfen und es zum noch Little-, Big- und PDP-Endian-Format gibt.

~Gh05t~
13-02-2004, 18:45
tja... ich merke gerade das ich zuviel mit PHP arbeite... :rolleyes:
C++ is für mich noch etwas Neuland, ich hoffe mal das kommt langsam ;)
Ich hab jedenfalls jetzt ne Lösung, auch wenn ich noch immer nicht ganz verstehe wie da in der letzten Zeile was wie zugewiesen wird :rolleyes:
Thx!!