[计算机组成原理] 计算机中数的表示-原码、补码、反码、移码

 

真值和机器数

  • 真值就是我们实际要表示的数字。
  • 机器数就是这个数在计算机怎么存的。

有符号数和无符号数

  • 有符号数:一个字节占8位,有符号就是有正有负,那么这8位就得有一位表示正号和负号,剩下七位数才表示数值。
  • 无符号数:一个字节占8位,既然是无符号数,就是肯定是正的,这8位数都是数值位,对应C语言中的unsigned int。

定点数

  • 定点数就是小数点的位置是固定的,假设一个数用一个字节存,也就是8位存,如果是整数,那么小数点的位置在最后边,如果是小数,那么小数点的位置在最高数值位前边,也就是符号位后边(不考虑无符号数)。

定点数的原码表示法

定点整数

定点小数

举例

原码小结

  • 假设有符号数用一个字节表示,那么定点整数的最小值为11111111B,定点整数最大值为01111111B,共可以表示255个数,为啥不是256,因为10000000B和00000000B表示的都是0,虽然有256种二进制组合,但是只表示255个数。
  • 假设有符号数用一个字节表示,那么定点小数的最小值为11111111B,定点小数最大值为01111111B,共可以表示255个数,为啥不是256,因为10000000B和00000000B表示的都是0,虽然有256种二进制组合,但是只表示255个数。

补码表示法

反码表示法

移码表示法

总结

  • 把十进制转二进制,整数部分:除二取余,倒着写;小数部分:乘二取整,正着写。
  • BCD码,用8421码来表示一个十进制数,比如93,9对应1001,3对应0011,所以93的BCD码就是10010011
  • x和y都是一位BCD码,进行加法运算时,如果和超过了9,则需要加6修正。
  • n位无符号数,那么n位都是数值位。
  • 正数的原码、反码、补码是一样的。
  • x的原码和-x的原码关系:数值位相同,符号位相反
  • 原码移位规则:符号位不变,空位补0
  • 补码的定义:模加真值。其中对于定点小数(n+1位)模是2,定点整数(n+1位)模是pow(2,n+1)
  • 补码比原码(反码)多表示一个数,都是数轴左边的那个数,对于小数补码可以表示-1,对于整数补码可以表示-pow(2,n),都是用-0的原码表示的,即10000000
  • x的补码和-x的补码关系:包含符号位,取反,再加1
  • 补码移位规则:左移符号位不变,空位补0;右移符号位不变,空位补符号位
  • 补码位扩展:小数低位用0扩展,整数高位用符号位扩展
  • 根据原码求补码:整数的原码就是补码;对于负数来说,先求出负数的原码,在从最低位起,遇到的0和第一个1不变,其他数值位取反
  • 反码就是补码减1;或者反码就是原码数值位取反,表示范围和原码一样。
  • 移码和补码的关系:数值位相同,符号位相反。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值