Извините меня за мой английский. У меня есть ряд ИНТ значений, хранящихся в нем от 0 до 255. Для того, чтобы выяснить, что лежит в 7-битовом числе, я перевожу число в двоичную систему счисления, а затем в строке и проверьте строку:Побитовые операции с int
if (informationOctet_.substr(6, 1) == "0")
{
...
}
возникли два вопроса,
Если я использую Int (мы имеем 4 байта), а мой номер беззнаковое целочисленное значение в диапазоне [0, 255] Как определить, какой байт мне нужно учесть? Высокий байт?
Я нашел нужный байт, откуда вы знаете содержимое, например, 6-го бита?
P.S. Я не использую заклинания, потому что делать с unsigned int.
СПАСИБО ВСЕМ, я проверяю Int номер:
int k = 3;
for (int i = 0; i < 8; i++)
{
if (k & (1 << i))
{
std::cout << 1;
}
else
{
std::cout << 0;
}
}
печати:
2. если (п & (1 << 6)) {/ * бит 6 равен 1 * /} –
Вам не нужно преобразовать в двоичный, есть битовые операторы, которые позволяют работать непосредственно на целое число. Также обратите внимание, что, возможно, вы не должны зависеть от того, что int == 4 байта, это не гарантируется стандартом. – Jon