欢迎光临散文网 会员登陆 & 注册

补码的思考

2023-03-02 00:22 作者:bili_哔哩希  | 我要投稿

补码、反码、原码都是数码的一种符号化方式,每一种方式都是数字编码的方式,就好像我们在ASCII码中约定a是65一个道理,但是数字存在特性就是计算,你的约定是不是方便构造计算就成了另外一个需要考虑的事情。那么为什么相较于原码、反码,补码可以将减法转换为加法呢。

首先我们来看钟表,最上面是0点,往前数3个小时是昨天的9点我们认为是-3点,如果我们使时针再次来到这个位置除了倒退3格还可以向前9格来到9点,那么我们为了得到这个-3是不是可以先向前走9,也就是+9然后减去一圈也就是-12。这样我们就把-3变成了+9,再减去一个周期12。这个就是补码这边按照计算机的写法-3原码为103,补码为109,补码中的如果对应数字-3并不是带表负号而是-12,如果在运算位109+007,我们可以试想一下,就相当于116,但是周期是12,16会进位和符号位抵消也就是-12抵消掉了,那么得到鞥书004。如果109+002呢,得到111,最后的运算还是-12+11得到001。

我们来观察补码,先来看-3这个数,假设采用2位表示数字,1位表示符号。这样排出符号位,数字位只能是00,01,10,11四个数,即周期是4,那么-3的补码是101,这个符号位的1代表的就是-4,加1减-4得到-3,同样一个道理。


补码的思考的评论 (共 条)

分享到微博请遵守国家法律