用“模”粗浅理解负数的二进制表示


本文将以8位二进制数为例,记录下自己对这个问题的疑惑和思考。
第一学期学习计概的时候,老师会这么讲:

二进制数用最高位是符号位的方法来区分正负数;
负数的补码等于反码加一;
即:负数的二进制表示为对应正数的二进制取反加1;

可是,“符号位”的规定是怎么想的?这个关于补码、反码、原码的计算方式又是怎么来的呢?当时没有细想,只是当成了一个知识点记下来了,没有什么别的体会。
今天看到一篇文章link于是重新思考了这个问题,受到一些启发。

模的引入

我们不谈严谨的数论知识,也不从数学上“模”的定义来考虑,而是从生活中的一个例子入手。
一个时钟,时针指向4,顺时针拨动7位和逆时针拨动(12-7)位的效果是一样的,都会让它指向11。

4+7==4-(12-7)

在这里没有用=的原因是,这个“效果相等”是在时钟的意义下的,并不是真的数值相等。在这里,12,就是所谓的“模”。我把它理解为一个特定集合的边界范围。
于是试图总结这样一个规律:(其实数学上极其显然)

X+Y==X-(模-Y)---------(mod 模)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值