我正在尝试颠倒 C 中的位顺序(作业问题,主题:按位运算符)。我找到了这个解决方案,但我对使用的十六进制值有点困惑——0x01 和 0x80。
unsigned char reverse(unsigned char c) {
int shift;
unsigned char result = 0;
for (shift = 0; shift < CHAR_BITS; shift++) {
if (c & (0x01 << shift))
result |= (0x80 >> shift);
}
return result;
}
我正在编写的这本书没有讨论过这些价值观,所以我不确定如何理解它们。有人可以阐明这个解决方案吗?谢谢!