Я пытаюсь использовать побитовые операторы по типу uint64_t. Когда я запускаю это, я получаю вывод из 37 (47 - 10) бит, хотя он должен быть длиной 54 бит (64-10 бит). Как я могу это исправить?Побитовая проблема в C
uint64_t temp = addr; //(addr input - 11111111110100011010111011011111000101111001000)
temp = temp >> 10;
return temp; //returns 37 bits only as input is 47 bits.
Выход: температура теперь 1111111111010001101011101101111100010
Показать еще код. Что такое 'addr'? – unwind
addr также uint64_t со значением в двоичном формате, указанном в комментариях. – codepk
Есть 64 бит в uint64_t. Вы не видите ведущих нулей. – harold