Maneira padrão (multiplataforma) para manipulação de bits

Como são diferentes representações binárias dos números (por exemplo, take big / little endian), esta plataforma cruzada:

// 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 ) );

Em outras palavras, o compilador sempre cuida da representação binária diferente dotamanho fixo números não assinados, ou é específico da plataforma?

E sevariable é um tipo integral assinado (por exemplo,int) e seu valor é

zeropositivonegativo?

O que faz oPadrão dizer sobre isso?

P.S. E,simEu sou interessante em ambosC eC++, por favor não me diga que são línguas diferentes, porque eu sei disso :)

Eu posso colar um exemplo real, se necessário, mas o post ficará muito longo

questionAnswers(3)

yourAnswerToTheQuestion