Стандартный (кроссплатформенный) способ манипуляции битами
Как различаются двоичные представления чисел (например, принимают большой / маленький порядковый номер), является ли это кроссплатформенным:
// 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 ) );
Другими словами, всегда ли компилятор заботится о различном двоичном представленииfixed size числа без знака или это зависит от платформы?
А что еслиvariable
является целочисленным типом со знаком (например,int
) и его значение
Что этоStandard сказать об этом?
P.S. And, yes, I'm interesting in both - C
and C++
, please don't tell me they are different languages, because I know this :)
I can paste real example, if needed, but the post will become too long