Стандартный (кроссплатформенный) способ манипуляции битами

Как различаются двоичные представления чисел (например, принимают большой / маленький порядковый номер), является ли это кроссплатформенным:

// 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) и его значение

zero positive negative?

Что это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

Ответы на вопрос(3)

Ваш ответ на вопрос