02.二进制运算



二进制加法:

​二进制加法从低位开始逢二进1,比如29+5=34换成2进制就是11101+00101=100010;


二进制减法:

对于计算机来说它是只能进行加法运算不能做减法运算的,所以减去一个二进制数就等于加上这个数的负数。

原码:​通过最高位作为符号位的方法来表示一个二进制数的正负,0表示正1表示负;比如

10001和-10001的八位二进制原码分别为00010001和10010001

反码:正数的反码和原码相同,负数的反码保持符号位不变​,其余各位取反即0变1,1变0;比如原码00010001和10010001的反码分别为00010001和11101110

补码:正数的补码和源码相同,负数的补码为先取其反码再在最低位加1;比如​原码00010001和10010001的补码为00010001和11101111

ps:正数的原码,反码,补码都一样,计算机中都是用补码进行计算

则​计算10101-00101(换成十进制是21-5)的步骤就为:先将两个二进制数转换为8位二进制补码的形式

00010101和11111011,然后再将两数相加​,如图一:

图一

因为符号位进位了所以要舍去进位,最终结果为00010000,注意这个结果是补码,还要转换回去,因为这个补码是正数所以原码还是他自己即00010000换成十进制为16

​              

为什么补码的最高位进位可以舍去?

这个和补码的作用有关,他就是为了解决二进制减法符号位进位的问题而出现的。不需要过于纠结其中原理



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值