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

zeropozytywnynegatywny?

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

questionAnswers(3)

yourAnswerToTheQuestion