机器数的表示形式

最近在学习 微机原理 , 被弄得是焦头烂额 。这个东西讲起来太抽象,不好理解 老师讲的也听的是一塌糊涂 , 最近花了点时间  ,算是把 机器数的数值运算弄出了点头绪 。 在这里记录一下吧 !

   “ 机器数” 根据我的理解 , 就是带符号位的二进制代码 。  8位二进制数 ,最高位表示的符号 ,其中 o

代表的是整数 ,1 代表的是负数 。如 : 1000  1111  和 0000  1111 他们虽然长得很像 ,但是其表示的意义

却有很大的差别 ,前者表示的是整数+15 而后者表示的是 -15 。

   “真值” 是机器数所能表示的值 。 它有三种表示方法 : 原码 、 反码 、 补码 。

   原码的取值范围是 -127 --- + 127  原码的表示虽然简单易懂 , 但是它的加法运算电路太复杂 ,不是很容易实现

   反码的取值范围是 -127 -- +127   

   补码的取值范围是  -128 --- +127   对一个已知的补码 再次求它的补码 便能还原出真值。

   那么原码  反码  和补码 我们要如何求得呢 ??

   对于 上面的我们所说的 + 15 作为例子 :

   我们知道  对于1111  对应的十进制数  是 8 4 2 1 , 那么 十进制+15 转化为二进制是 :  1111  他只有

四位,我们要求的是八位二进制数 , 所以 其余位置补零 ! 最高位表示符号位,所以左边的第一位  为零 。

0其余位置也是零 ,所以 +15 转化为二进制 是   :  0000 1111  。-15 与+15 唯一的区别是 符号位  为1 , 是 1000 1111  。反码就是对原码 按位取反 ,符号位不变 , 但是这个有一个前提 就是针对负数而言。正数的

原码 ,反码 , 补码 都是一样 ,没有任何的变化 。  那么 -15的反码 就是 1111 0000  补码就是对原码的

绝对值取反 然后加1 所以 -15 的补码就是 1111 0001 !

   总结一下上面说的:正数的原码  反码  补码 是一样的 , 最高位都表示的是符号位 。 0 为正数  1 为负数

负数的反码是原码绝对值  按位取反  , 补码是反码加 1 ,符号位不变 。

   下面在说一下进位数值之间的转换 : 

   二进制数---》八进制

   从小数点开始,分别向左右按三位转换成对应的八进制数字字符 。最后不足三位的 补零 。

        二进制数   1101101  转换为 八进制数

 

  二进制   001  101  101

  八进制    1    5    5

  所以二进制数转换为 八进制数 为  (155)o

  二进制转换为 十六进制  是每四位一组 与转化为八进制 基本相同 , 不再赘述 。

  对于十进制 与二进制  八进制  十六进制之间的转换 , 分别是 除 2  , 8  , 16  。

  八进制  十六进制  转换为 二进制  ,是二进制 转换为十六进制 ,八进制 的逆运算。 每一位 分别用 三位和四位二进制表示 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值