<分区>
我在尝试使用 C++ 中的位移位时遇到了一些问题。
我有一个 char a = 160
和 char b = 0
。 a 的值为 0b10100000
。我想将 a
的最左边的位移到 b
中,这样 b
的值为 2 (0b10)。按照我的逻辑,应该这样做:
b = (b << 2) | (a >> 6);
但是,当我检查 b 中的值时,它是 -2
而不是我期望的 2
。将其转换为 unsigned char
会将其值更改为 254。
我做错了什么?