当前位置:首页 > 培训职业 > 正文

C语言中,负数的二进制码怎么转换为十进制

计算机中的整数是用补码存储的,最高位为符号位,C语言也遵从同样的规则。

如果最高位为0则为正数,求值的时候,直接转为10进制即可。

最高位如果为1代表为负数,求值的时候,需要先把二进制的值按位取反,然后加1得到负数绝对值(相反数)的二进制码,然后转为10进制,加上负号即可。

以char型为例,char占一个字节,即8位。

对于二进制值B10110011转换十进制过程为:

先取反,即1变0,0变1,得到:

B0100 1100

再加1:

B0100 1101

转为十进制,即按照每位的权值乘上对应位的值,结果相加即可。

十进制值=0*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0

=0+64+0+0+8+4+0+1

=77

加上符号,最终的十进制值就是-77。

即B10110011 表示的十进制值为-77。

多重随机标签

猜你喜欢文章