C でビットの順序を逆にしようとしています (宿題の質問、件名: ビット単位の演算子)。私はこの解決策を見つけましたが、使用されている 16 進値 (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;
}
私が取り組んでいる本では、これらの種類の価値について論じていないので、どうすればよいのかよくわかりません。誰かがこのソリューションに光を当てることができますか? ありがとうございました!