关于上一篇细学C++之位运算符中,也许会有许多人不理解为什么【1111111111110101 ==>-11】,这个-11是怎么来的呢,这一篇为您揭晓。
这就涉及到了二进制转换为十进制的问题,这个大家应该是很熟的,毕竟在高中或者大学都是有教学的,但是在计算机中的二进制,是要更深入一点,我们将这种转换称为计算补码。
在计算机中计算补码有两种情况:
1.对正数
对于正数来说,就是我们常见的二进制转换为十进制的计算,直接按位计算权重和,如下图
对于01010这个二进制码从右往左按照从0开始递增的计数操作壹壹对应作为其下标,后用对应位置上的位(基本上是1)乘以2的下标次方,将它们的和相加就得到了该二进制的补码
2.对负数
对于负数来说,也只是在对正数计算