Witam.
Czy jest jakaś funkcja pozwalająca rozbić liczbę (np. 1b char) na pojedyncze bity? (np. do tablicy). Z funkcją składającą sobie poradzę sam :) a do pisania tamtej coś mi brakuje zapału (a tym bardziej czasu....).
pzdrv.
0
0
to sa raczej proste do napisania funkcje..
void rozbij( char *tab, int liczba, int ile_bajtow )
{
int i;
ile_bajtow *= 8;
for( i = 0; i < ile_bajtow; i++ )
{
tab[ ile_bajtow - i ] = liczba & 1;
liczba >>= 1;
}
}
uzycie:
int asdf = 0x12345678, i;
char tab[ 32 ];
rozbij( tab, asdf, sizeof( asdf ) );
for( i = 0; i < sizeof( asdf ) * 8; i++ ) putchar( tab[i] + '0' );
putchar( '\\n' );
0
Dzieki :)
0
C ma wbudowane mechanizmy do obslugi takich sytuacji :)
typedef struct CBity{
unsigned FBit0:1;
unsigned FBit1:1;
unsigned FBit2:1;
unsigned FBit3:1;
unsigned FBit4:1;
unsigned FBit5:1;
unsigned FBit6:1;
unsigned FBit7:1;
}*PBity;
PBity rozbij(unsigned char *ALiczba){
return (PBity) ALiczba;
}
Odwolanie:
unsigned char Liczba;
PBity Bity;
Bity = rozbij(&Liczba);
Bit0 = Bity->FBit0;
Bit1 = Bity->FBit1;
itp..