原码,反码,补码,阶码,移码是什么?有什么区别(讨论机器数的表示)

原码,反码,补码,阶码,移码是什么?有什么区别(讨论机器数的表示)

本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社>

一、机器数解释:

机器数是计算机中参与运算且带有(+)、(-)属性的二进制数
–引用自王达老师的《深入理解计算机网络》

  • 1、计算机中的数如何表示符号?(计算机的数也是存在正负之分的,那么如何区分它们的正负呢?)
    我之前的博文介绍二进制的时候,是没有考虑二进制带符号的情况,但是,数制之间的转换是不包括符号位的,即转换的时候,符号位是保持不变的。现在,我专门来介绍带符号的二进制数,也就是机器数的各种表示(原码,反码,补码–正是因为二进制带上了符号,所以产生了这些叫法)
    • ⑴、机器数 –机器数是有符号位的二进制数,规定用它的最高位表示符号位,0表示正数,1表示负数,比如+1101:01101,-1101:11101,一般来说,没有符号位的二进制数称为"无符号数",是不参与各种运算的,比如信息编码等。
      这里需要提示一下:一旦二进制数有符号了,那么在数制之间进行转换的时候,千万记得不要把二进制最高位的数值表示一起转换了,因为那是符号位。也不要对0 1101 0110这种开头为0的二进制数感到奇怪,这个最高位的0不是二进制的数值有效位,仅表示符号(+),说明了这是一个正数。
      下面,我们来谈几个必须要了解的概念:

      以下内容引用自王达老师《深入理解计算机网络》一书
      真值:因为机器数是带有符号位的了,那么这个机器数的实际值是需要将符号位去除的,剩余的部分才是这个机器数的实际值,这个剩余的部分所表示的值就是机器数的"真值"。
      字长:字长可以简单理解为用来表示一个机器数所用的二进制位数,就是我们常说的8位,16位,32位,64位(硬件CPU能处理的最小字长是一个字节,一个字节就是8位二进制,所以也会说1字节,2字节,3字节,4字节)。
      如果确定了字长,那么所有的机器数都是用固定的字长来表示,无论机器数的大小。
      字长不同,同一个机器数的表示就不同,比如字长为8位,+5的表示为:00000101,-5的表示为10000101,16位字长,+5的表示为0000 0000 0000 0101,-5的表示为1000 000 000 0101。一个机器数是必须要单独占用一个字长的,否则计

  • 24
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值