关于移码的问题
请问各位大神,
关于下面阶码7的移码计算为何是下面的五位二进制数字呢?
麻烦知道的告诉我下哈,妹子刚入门学习,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
请问各位大神,
关于下面阶码7的移码计算为何是下面的五位二进制数字呢?
麻烦知道的告诉我下哈,妹子刚入门学习,谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
移码是用非负整数来表达整数概念的技术实现,便于存储和计算。举例来说,你如何用二进制表达一个负数呢?一种方法是前面加一个符号位,用0表示正数,1表示负数,但这样在计算负数的时候,还需要做额外的计算。另外一种简单的做法是这样,以你这里的5个二进制数为例,这5个二进制数所能表达的最小数是多少呢?00000,对吧?最大是多少呢?11111,对吧?我们从中间劈开,中位数应该就是10000,对吧?好,那我们现在认定10000表示0,凡是比10000小的,则都是负数,比10000大的,都是正数,比如10001就是1,10002就是2,那么-1是多少呢?很简单,10000减去1就是-1,所以,01111就是-1,同样,再减去1,01110就是-2,依此类推。这样有一个很直观的好处,就是你不需要看符号位,而只要直接比较数字的大小,马上就知道哪个数比哪个数大,负数一定小于正数,相当于我们把负数在座标轴上进行了偏移,强行把最小的那个负数搬到了0的位置,把原来的0向右搬了家。所以你这里7的移码就是10111了。