Hi all, Am Friday 16 May 2003 17:20 schrieb Manfred Tremmel:
Am Freitag, 16. Mai 2003 15:55 schrieb Tim Oliver Wagner:
ich bin noch ein C++ Anfänger und möchte aus einer Datei einzelne Bits auslesen können ... leider finde ich nur die Möglichkeit Chars auszulesen ...
Ist auch so ;)
Das Byte ist traditionell die kleinste adressierbare Einheit in der EDV.
Adressierbar schon, aber es gibt ja noch Bitfelder(C) und bitsets in C++.
Hoffentlich kann mir jemand einen Tipp geben wie man einzelne Bits auslesen kann ... oder ist es wirklich die einzige möglichkeit ein C-String auszulesen und dann in diesem die einzelnen Bits zu untersuchen ...
Wirst nicht drum rumkommen.
Du kannst byte für byte die Datei auslesen und jedes Byte (oder mehr) in bitfelder packen. /* C */ typedef struct { char bit0 : 1; char bit1 : 1; char bit2 : 1; char bit3 : 1; char bit4 : 1; char bit5 : 1; char bit6 : 1; char bit7 : 1; } t_Bit; typedef union { char base; BitTyp field; } t_BitUnion; for (i=0; i < sizeof(c_array); i++) { t_BitUnion.base = c_array[i]; // Bit '0' ausgeben printf("%d ", t_BitUnion.field.bit0 ); } // C++ #include <bitsets> // siehe STL c++ char c; int pos = 1; bitsets<8> bs(c); if (bs.test(pos)) { // test(size_t pos) gibt ein bool zurück machwas(); } Vielleicht hilft das weiter ... Bye Andre