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

 我来答
_叶子妞妞_
推荐于2019-08-09 · TA获得超过3672个赞
知道小有建树答主
回答量:327
采纳率:83%
帮助的人:91万
展开全部
计算机中的整数是用补码存储的,最高位为符号位,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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式