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 é
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