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

数据与文字的表示方法

在这里插入图片描述

定点表示法

在这里插入图片描述
在这里插入图片描述

机器码(机器数)

正数的原码、反码、补码一样,负数的原码、反码、补码的符号位均为1,数值位不同

原码

  • 原码就是符号位加上二进制表示数的绝对值
  • 缺点:两数相加的时候,如果是同号则数值相加,异号则进行减法(在进行减法的时候,还要进行比较绝对值的大小,然后大数减去小数,最后还要判断正确的符号位)

反码

  • 反码就是在原码的基础上,正数的反码和原码相同,负数的原码,符号位仍然是1,数值位按位取反

补码

  • 补码:用正数来表示负数
  • 优点:不论数是正还是负,机器总是做加法,减法运算也可以转化为加法运算
  • 负数如何从原码快速求补码?符号位不变,同时从数值位的最低位的第一个1的右边(包括第一个1),左边全部取反即可
  • 如何理解定点整数的补码?
我们还是利用时钟原理去理解:当你一个数包括符号位一共n位(可以表示256个数字)
非负数是0-127,负数是-128-1
顺时针时钟从0-127,从0出发,逆时针,分别是-1到-128,-1对应255的位置

在这里插入图片描述

  • 如何快速求?
    首先我们直接用256-5,则求的是251的原码,又255的原码是FFH,我们用FFH-4即可

移码

在这里插入图片描述
在这里插入图片描述

  • 移码通常用于表示浮点数的阶码 表示数的一个平移作用
  • 移码: [ e ] 移 [e]_移 [e]= 2 k + e 2^k+e 2k+e,如何理解求移码,k位的整数,我们直接用真值e加上 2 k 2^k 2k即可。例如:
+10101 = 32 + 10101 = 1,10101
-10101  = 32 -10101  = 0,01011 
# 也就是对于正数的移码,也就是增加一个最高位的符号1,但是对于负数的补码,就直接用定义去算即可
  • 可以看到,在补码中,正数的符号位是1,负数的补码是0
  • 其实,应该如何理解?补码是0-e,然后我们在补码的基础上+ 2 k 2^k 2k`,也就是实现一个变换符号的一个功能。
  • 所以移码中符号位的设置与原码,反码,补码相反。

小结

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

浮点表示法

  • attention:为什么叫作浮点数?因为阶码可以取不同的值,导致小数点的位置不确定
    在这里插入图片描述
    在这里插入图片描述
  • 当前的计算机采用统一的IEEE754标准
  • S 是符号位,S=0表示正数,S=1表示负数,M是尾数,放在最低位,占用23位,E是阶码,占用8位,阶符采用隐含方式,即采用移码来表示正负指数。E = e + 127也就是阶码的表示是真值加上127的偏移量,确保了阶码的表示非负
E = 0,其实表示的是-127
e = 2 ,那么E=129

浮点数的规格化

  • 浮点数的规格化:我们规定,当尾数不为0时,尾数域的最高有效位为1==>我们可以省略最高位的1,所以23位数可以存储24位有效位,提高了精度

  • 我们如何从一个规格化的浮点数求它的真值? x = ( − 1 ) s ∗ ( 1. M ) ∗ 2 E − 127 x=(-1)^s*(1.M)*2^{E-127} x=(1)s(1.M)2E127

  • 特殊情况:

  • E = 0和尾数M = 0:表示0

  • E = 255和尾数M = 0:表示无穷大

  • E = 255和尾数M ≠ 0:表示NaN

  • 还存在非规格化数用于表示更小的浮点数 N = ( − 1 ) S ∗ ( 0. M ) ∗ 2 − 126 N=(-1)^S*(0.M)*2^{-126} N=(1)S(0.M)2126

尾数规格化

在这里插入图片描述

在这里插入图片描述

  • 可以看到,原码表示的尾数规格化,最高的数值位一定是1;用补码表示的尾数规格化,符号位与最高的数值位相反
  • 注意规格化下(8位),原码的正数最小的数是0.100 0000,最大的是0.111 1111;负数最大的是1.100 0000,最小的是1.111 1111;补码情况下,正数最小的是是0.100 0000,最大的是0.111 1111;负数最大的是1.011 1111(原码的形式是1.100 0001,最小的是1.000 0000(就是-1)。
  • 总的来说,原码情况下,正数和负数分别能取到0.5和-0..5,然后另一边的绝对值接近1
  • 补码情况下,正数取得到0.5,然后接近1;负数接近-0.5,但是可以取到-1

在这里插入图片描述

在这里插入图片描述

习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十进制串的表示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字符与字符串的表示方法

在这里插入图片描述
在这里插入图片描述

汉字的表示方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

校验码

在这里插入图片描述

奇偶校验码

在这里插入图片描述
在这里插入图片描述

海明校验码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 如何进行求解海明码?
(1)先根据公式求出校验的位数k
(2)在2的相对应的幂次位上插入校验位,利用的位号的关系,列出每一个校验位参与的实际位号
(3)根据奇偶校验的要求求出校验位的数字,得出最终的海明码

在这里插入图片描述

循环冗余码

在这里插入图片描述

习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机组成原理算法实现代码及报告 1)系统进入(主)窗体的设计:菜单需要在输入口令正确后方可激活使用。口令输入错误时要给出重新输入口令的提示,三次口令输入错误应该禁止使用。 有四个菜单,分别是“逻辑运算”、“进行定点整数单符号位补码加减法”、“定点整数原码乘法”和“浮点数的加减运算”口令输入正确后菜单激活,按相应菜单进入相应窗口。 (2)选择主窗体中“逻辑运算”时进入逻辑运算窗体: ①两个输入框各输入一个数; ②一个结果输出框输出结果; ③八个按钮如下: 按“输入”将输入焦点设置为最上面的一个文本框上。依次输入两个(或一个)二进制数(如110101或110101) 按“逻辑非”、“逻辑加”、“逻辑乘”或“逻辑异”按扭中的任一个后,将在第三个文本框中显示对应操作的结果。 选择“返回”按扭时回到主窗体 (3)选择主窗体中“进行定点整数单符号位补码加减法”时进入进行定点整数单符号位补码加减法窗体: ①两个输入框各输入一个数; ②两个结果输出框分别输出加法结果和减法结果; ③四个按钮 按“输入”将输入焦点设置为最上面的一个文本框上依次输入两个(或一个)二进制数(如110101或110101)其中第一位是符号位0为正1为负 按“加法”后在加法结果输出框中显示对应操作的结果 按“减法”后在减法结果输出框中显示对应操作的结果 按“返回”按扭时回到主窗体 (4)选择主窗体中“定点整数原码乘法”时进入进行定点整数原码乘法窗体: ①两个输入框各输入一个数; ②一个结果输出框输出结果; ③三个按钮 按“输入”将输入焦点设置为最上面的一个文本框上依次输入两个(或一个)二进制数(如110101或110101) 按“乘法”后在结果输入框中显示对应操作的结果 按“返回”按扭时回到主窗体 (5)选择主窗体中“浮点数的加减运算”时进入浮点数的加减运算窗体: ①四个输入框分别输入第一个数的阶码和尾数及第二个数的阶码和尾数; ②四个个结果输出框分别输出加法结果的阶码和尾数及减法结果的阶码和尾数; ③四个按钮 按“输入”将输入焦点设置为最上面的一个文本框上依次输入二进制数 按“加法”后在加法结果输出框中显示对应操作的结果 按“减法”后在减法结果输出框中显示对应操作的结果 按“返回”按扭时回到主窗体
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值