在char c ++上使用Bitwise NOT混淆

时间:2018-01-04 03:44:33

标签: c++ binary bit-manipulation

我目前正在阅读“C ++ Primer”,我正在讨论按位运算符。

我明白但是我没有接受这个练习..

  

~'q'<<的数值是多少? 6在具有32位整数和8位字符的机器上,使用拉丁-1字符集,其中'q'的位模式为01110001?

答案是:

  

十进制的最终值是-7296。

他们是如何到达那里的?

基本上,我需要解释整个~'q' << 6的含义以及它们如何得到负数。

1 个答案:

答案 0 :(得分:2)

当'q'= 0b01110001时,则以十进制格式q = 113。 不是q(~q)= ~113 = -114(0b1111111110001110)。 当我们离开-114乘6时我们得到-7296(0b1110001110000000)。