由于数字有不同的二进制表示方式(例如,采用大/小端),这是否跨平台:
// 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 ) );
换句话说,编译器是否总是处理固定大小的无符号数的不同二进制表示,还是与平台有关?如果变量是带符号整数类型(例如int),且其值为0、正数或负数,那么标准对此有何规定?请注意,我对C和C++都感兴趣,因为我知道它们是不同的语言。如果需要,我可以提供真实示例,但这会使帖子变得太长。
stdint.h
,它为整数类型提供了许多跨平台选项。 - Richard J. Ross III