为什么用补码,为什么有符号单字节最小是-128

1.为什么用补码

先说明同余的概念:同余运算及其基本性质
关于同余负数问题,可以用负数,但是得想清楚为啥

怎样直白地理解补码原理?

参考上面文章基本能明白了为什么用补码,为了用加法器能计算负数;
总结上面的结论:
那为什么正负数要隔开呢? ———为了制造出类似原码的符号位,这样补码转换原码的时候,就可以区分转换了。正数不变,负数取反加一。

为什么是取反加一呢? ———根据原码负数时 [x]补=M-|x|推出来的 ,这是原始式子,也挺好记的比如-8的补码就是256-8 = 248,-128的就是128,。

那为什么原码取反加一为补码,补码取反加一为原码? ———因为负数的补码,根据前面所说和原码是互补的,根据[x]补=M-|x|推出来的公式。肯定是相同的,所以求原码也就相当求补了。


2.为什么有符号单字节最小是-128

这里说下为啥有符号单字节最小取-128,而不是最大取128,这里纠结了好久了。
-128的补码是10000000,如果128存在也是10000000;
1.假设10000000代表128,则计算128+1 为:

		10000000
	 +	00000001
---------------------	 
		10000001

而10000001是-127,加法器计算错误;
2.假设10000000代表-128,则计算-128+1 为:

		10000000
	 +	00000001
---------------------	 
		10000001

而10000001是-127,加法器计算正确;
所以取10000000为-128

这里纯个人理解,如有不对的地方望指正

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值