bit set
-
hi,
ich will ne art bitset funktion schreiben die folgende aussehen sollte:
set_byte_low("11000", "10101");die ersten 5 bits sollen in die var. bit_var bit 0 - 4 setzen, die nächsten 5 bits sollen bit 8 - 12 setzen
also so bit_var = "1010100011000";
wie mache ich das recht hübsch?
-
muss das unbedingt mit diesen strings sein? weil, ohne strings wär's ja viel einfacher.
-
möchte binär übergeben! da geht das ja nur mit strings?
cu
-
Hi Bruder !
Nein, das geht auch mit Zahlen.char byte;
setLow( byte, 0x5 ); // 1001
setHigh( byte, 0xB ); // 1011setLow und setHigh wären da natürlich noch zu schreiben, also macros oder funktionen, wenn das denn so in der art in deinem sinne ist.
-
folke schrieb:
möchte binär übergeben! da geht das ja nur mit strings?
hast auch wieder recht. manche compiler kennen 0b..., aber eben nicht alle. es gibt noch macro-tricks zum zusammenfummeln von binärzahlen, aber das sieht im endeffekt auch nicht so toll aus.
-
ich will ja ne binär darstellung übergeben und nicht hex;)
-
folke schrieb:
ich will ja ne binär darstellung übergeben und nicht hex
dann könnteste z.b. 'strtol' zum umwandeln nehmen, da kannste die basis angeben. geht also auch mit binärzahlen
-
oder
unsigned int bitset( const char low[ ], const char high[ ] ) { unsigned int bitset = 0; size_t i = 0; for( ; i < 5; ++i ) { bitset |= ( ( low[ 4 - i ] == '1' ) << i ) | ( ( high[ 4 - i ] == '1' ) << ( i + 8 ) ); } return bitset; }
Ich find' den Gedanken, Zeichenketten für soetwas zu verwenden nicht schön
cheers, Swordfish