c побитовые операции



Автор Вадим Ткалич задал вопрос в разделе Другие языки и технологии

c++, побитовые операции. и получил лучший ответ

Ответ от Krab Bark[гуру]
... Тьфу, написал сначала "между делом" чушь, извиняюсь.
Krab Bark
(112429)
Тьфу, конечно, влезает. Перед этим писал программу перевода в двоичную систему и как-то автоматически по инерции написал чушь 🙁

Ответ от Капитан Гугл[гуру]
unsigned char n;
...
n=UnitStateWord& 0x1FF;
n - char, т. е. содержит 1 байт. 8 бит. А 0x1FF - 9 бит. Вот 1 бит и отбрасывается (да, его вес - 256).

Ответ от Impressive_i[гуру]
С левосторонними сдвигами нужно быть аккуратным. Нужно знать сколько бит для данного типа свободно, и не стоит ли самый старший бит на последней позиции допустимого двоичного представления. Если мы потеряем старший бит при сдвиге, то число получится совсем другое при обратном преобразовании. Поэтому тип данных должен быть заранее подобран для такого кодирования. Либо кодируйте по частям. Чтоб точно быть уверенным, что данная часть числа/строки корректно шифруется-расшифровывается.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: c++, побитовые операции.
Битовые операции на Википедии
Посмотрите статью на википедии про Битовые операции
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*