Цитата(Kolia @ 23.1.2006, 04:17 ) | А если такая ситуация. Имею а=9, то бишь 1001 в двоичном. Двигаю биты на 1 влево. Соответственно самый крайний бит как бы вылетает: 0010. Неоходимо, чтобы он вернулся назад: 0011. Никакого встроеного механизма нет?
|
Любопытно, какая такая переменная используется, что у ней всего 4 бита, ну да ладно.
Для байтовой переменной будет так:
| Код | Byte_t a = 9; if((a <<= 1) & 0x10) a |= 1;
|
Добавлено @ 14:34 Если же всё-таки переменная - битовое поле, то можно так (не уверен, что всё это нужно, но мало ли):
| Код | a & 8 ? (a <<= 1) |= 1 : a <<= 1;
|
|