涐臭臭老公 4星
共回答了465个问题采纳率:98.4% 评论
计算机中的整数是用补码存储的,最高位为符号位,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。
17小时前
猜你喜欢的问题
2天前1个回答
2天前1个回答
2天前1个回答
2天前2个回答
2天前1个回答
2天前2个回答
热门问题推荐
3个月前1个回答
2个月前1个回答
3个月前1个回答
3个月前1个回答
3个月前2个回答
4个月前2个回答
3个月前1个回答
3个月前2个回答
1个月前3个回答