计算机组成原理之运算方法和运算器

本文介绍了计算机中的数据格式,重点讲解了定点数和浮点数的概念,以及它们在机器码表示中的原码、反码和补码形式。此外,文章详细阐述了移码在表示浮点数阶码中的应用,并提及了IEEE754标准在32位浮点数中的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据格式

定点数

  • 定点数就是数据的小数点的位置是固定不变的,通常将数据表示成纯小数或纯整数
  • n + 1 n+1 n+1 位数表示定点数,以 X n Xn Xn表示定点数的正负(0 为正数,1表示负数)
  • 对于 n + 1 n+1 n+1位定点数,小数点位于 X n Xn Xn X n − 1 Xn-1 Xn1之间,当每一个数位都是0时,绝对值最小为0,当全部数位为1时,绝对值最大为 1 − 2 − n 1- 2^{-n} 12n
  • 对于定点整数,表示的范围是 0 < = ∣ x ∣ < = 2 n − 1 0<= |x|<=2^n -1 0<=x<=2n1

浮点数

  • 计算机中,任意的二进制数N 可以写成: N = 2 e . M N=2^e.M N=2e.M
    其中,M 是一个纯小数,称为尾数,e 是浮点数的指数,是一个整数,称为阶码

机器码表示

原码

  • 通俗来说就是,符号位加上二进制的绝对值
  • 对于0,有+0-0的两种表示方法
  • 缺点:加法运算复杂

反码

  • 正数的反码与原码相同,负数的反码就是负数的原码符号位不变,数值位取反

补码

  • 对于正数的补码就是原码
  • 对于定点整数,负数的补码在计算上面可以由反码加1得到;但是从定义上看,我们用n+1 为数来表示一个定点整数,其中 X n Xn Xn为符号位,那么就有
    [ x ] 补 = 2 n + 1 − ∣ x ∣ [x]补 = 2^{n+1} - |x| [x]=2n+1x ,其实从实际意义上就是用正数多于的部分来表示负数
  • 采用补码的话,0的表示方法只有一种,并且无论数字为正数还是负数,机器总是做加法运算

数的补码与真值

  • [ x ] 补 = X n X n − 1 X n − 2 . . . . X 1 X 0 [x]_补 =X_nX_{n-1}X_{n-2}....X_1X_0 [x]=XnXn1Xn2....X1X0
    对于上面的形式: x = − 2 n X n + ∑ i = 0 n − 1 2 i x i x = -2^n X_n+\sum_{i=0}^{n-1}2^ix^i x=2nXn+i=0n12ixi
  • 如何更好理解?
  • 对于正数来说,由于符号位为0,那么就直接根据权重展开就可以
  • 对于负数来说,由于符号位为1,那么就是包括符号位共n+1位的情况下,就用 − 2 n -2^n 2n去加上偏移量,就是后面的一堆的数字的权重即可,具体而言就是以一个时钟为例子:
    一共由60份,本来是 [ 0 , 60 ] [0,60] [0,60],但是现在我用 [ 0 , 30 ] [0,30] [0,30]来表示正数, [ 30 , 60 [30,60 [30,60来表示原本的 [ − 30 , 0 ] [-30,0] [30,0],并且-30 的位置与30 的位置重合,那么具体如何求回本身的负数呢?就是目前的位置逆时针转动一圈即可,就是-60

移码

  • 移码通常表示浮点数的阶码,移码的定义为:
    [ e ] 移 = 2 k + e [e]_移=2^k+e [e]=2k+e, 2 k > e > = − 2 k 2^k>e>=-2^k 2k>e>=2k
    其中 [ x ] 移 [x]_移 [x] 为机器码,e 表示真值, 2 k 2^k 2k是一个固定的偏移值常数

IEEE754标准

  • 对于32位浮点数:符号位在最高位(1位),E 是阶码位(8位),M 是尾数位(23位)
  • 浮点数的指数真值e 变成阶码的时候加上127
    E = e + 127 E =e+127 E=e+127
    规格化表示:一个规格化的32位浮点数x 的真值表示为
    x = ( − 1 ) S ∗ ( 1. M ) ∗ 2 E − 127 x=(-1)^S*(1.M)*2^{E-127} x=(1)S(1.M)2E127
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值