Standardowy (wieloplatformowy) sposób manipulacji bitami
Czy są to różne binarne reprezentacje liczb (na przykład take big / little endian), czy jest to międzyplatformowa:
// NOTE: FIXED-SIZE unsigned integral type
some_unsigned_type variable = some_number;
// set n-th bit, starting from 1,
// right-to-left (least significant-to most significant)
variable |= ( 1 << ( n - 1 ) );
// clear the same bit:
variable &= ~( 1 << ( n - 1 ) );
Innymi słowy, czy kompilator zawsze dba o inną binarną reprezentacjęstały rozmiar numery niepodpisane lub specyficzne dla platformy?
A co jeślivariable
jest podpisanym typem integralnym (na przykład,int
) a jego wartość to
Co robiStandard powiedzieć o tym?
P.S. I,tak, Jestem ciekawy w obu -C
iC++
, proszę nie mów mi, że są różnymi językami, bo to wiem :)
W razie potrzeby mogę wkleić prawdziwy przykład, ale post stanie się zbyt długi