第二章 数据的机器级表示

2.1数制和编码

1.为什么采用二进制

(1)二进制只有两种基本状态
(2)二进制的编码和运算规则都很简单
(3)两个符号1和0正好与逻辑命题的两个值真假对应

2.进位计数制

  • 十进制与二进制转换,不再说了,只说一下小数部分,二进制转化为十进制的时候,由左向右对应的数依次为2的负一开始,一直到2的负n,所以在十进制转化为二进制的时候,成2,乘出了一个整数,对应的就是第一位的,乘的2越多,说明他的位数越低
  • 二八十六进制的转化非常简单,八进制,是二进制每三位的缩写,十六是每四位。

3.定点与浮点表示

1.定点表示
  • 定点小数:小数点固定在最左边
  • 定点整数:小数点固定在最右边
2.浮点表示

X = ( − 1 ) S ∗ M ∗ R E X=(-1)^S*M*R^E X=(1)SMRE
S是正负1,M是定点小数,R是基数,E是二进制定点整数
所以 ∣ X ∣ |X| X的取值范围是
2 − ( 2 m − 1 ) ∗ 2 − n ≤ ∣ X ∣ ≤ ( 1 − 2 − n ) ∗ 2 2 m − 1 2^{-(2^m-1)}*2^{-n}\leq|X|\leq(1-2^{-n})*2^{2^m-1} 2(2m1)2nX(12n)22m1

4.定点数的编码表示

这个主要是为了解决正负号的问题

1.原码表示法
  • n位数值位和1位符号位
  • 但是零会有两种形式 正零000…0和 负零1000…0,两种形式。所有使用不方便
  • 而且,加减异号数的时候,需要先判断绝对值的大小,再确定最终的加号,总之这种办法,几十年前就不用了
2.补码表示法

采用了模运算,所以减法可以用加法来实现
补码的定义 正数的补码就是其本身,负数的补码等于模与该负数绝对值的差。

  • 当 X T 为 正 数 时 , [ X T ] 补 = X T = ( M + X T ) ( m o d M ) 当X_T为正数时,[X_T]_补=X_T=(M+X_T)(mod M) XT[XT]=XT=(M+XT)(modM)
  • 当 X T 为 负 数 时 , [ X T ] 补 = M − ∣ X T ∣ = ( M + X T ) ( m o d M ) 当X_T为负数时,[X_T]_补=M-|X_T|=(M+X_T)(mod M) XT[XT]=MXT=(M+XT)(modM)
  • 所 以 对 于 任 意 的 数 [ X T ] 补 = ( M + X T ) ( m o d M ) 所以对于任意的数[X_T]_补=(M+X_T)(mod M) [XT]=(M+XT)(modM)

所以推得了由n-1位数值位和一位符号位的二进制整数来说其补码的定义为(注意右侧取不到等号,左侧取得到等号)
[ X T ] 补 = ( 2 n + X T ) ( m o d M ) ( − 2 n − 1 ≤ X T < 2 n − 1 ) [X_T]_补=(2^n+X_T)(mod M)(-2^{n-1}\leq X_T<2^{n-1}) [XT]=(2n+X

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值