数据的表示和运算
1. 数制与编码
1.1 进位计算制及其相互转换
- 采用二进制编码的原因
- 二进制只有两种状态,使用两个稳定状态的物理器件就可以表示二进制数的每一位,制造成本低。
- 二进制的1和0刚好与逻辑值真和假相对应。为计算机实现逻辑运算和程序逻辑判断提供了便利条件。
- 二进制编码和运算的规则简单,通过逻辑门电路方便实现算术运算。
该题答案为D。
- 进位计数制
- 常用的进位制有二进制、十进制、八进制、十六进制等。生活中一般是十进制,计算机中通常有二进制、八进制、十六进制。
- 在进位计数制中,每个数位所用到的不同数码的个数称为基数。比如10进制的基数为10,有(0~9)10个数字。逢十进一。
- 每个数码所表示的数值等于该数码乘以一个与它所在数位有关的常数,这个常数称为位权。
- 二进制中的3位数码编为一组就是1位八进制,4位编为一组就是1位16进制。
- B表示二进制,O表示八进制,D表示十进制一般省略,H一般是十六进制,也可以用前缀0x表示十六进制。
- 不同进制之间的相互转换
- 二进制转八进制和十六进制。如果转换为八进制则3位分为一组,转换为十六进制则4位分为一组。不够时,从左边用0补齐。
- 如1111000010.01101转换为八进制和十六进制
八进制 【001,111,000,010.011,010】=1702.32O
十六进制【0011,1100,0010.0110,1000】=3C2.68- 其中10进制数123.6875转二进制中的小数部分是通过每次×基数2得到。
1.2 定点数的编码表示
- 真值和机器数。生活中通常用正负号来表示正数和负数。如+15,-8等。这种带+正号或者-负号的数称为真值。真值是机器数所代表的实际值。计算机中将数的符号和数值一起编码,将数据的符号数字化,通常0代表正数,1代表负数。这种把符号数字化的数称为机器数。常用的有原码、补码、反码表示法。如0,101表示+5,这里的逗号,用于区分符号位与数值位。
- 机器数的定点表示。根据小数点的位置是否固定,计算机中有两种数据格式,定点表示和浮点表示。在现代计算机中,通常用补码表示整数,用原码小数表示浮点数的尾数部分,用移码表示浮点数的阶码部分。
- 在计算机中,数字的表示方法主要分为定点数(Fixed-Point)和浮点数(Floating-Point)两种。它们的核心区别在于小数点的位置是否固定,这直接影响数值的表示范围、精度和计算方式。
- 定点小数:定点小数是纯小数,约定小数点位置在符号位之后。
- 定点整数:定点整数时纯整数,约定小数点位置在有效数值部分最低为之后。
- 要明白机器内部并没有小数点,只是认为约定了小数点的位置。因此在定点数的编码和运算中不用考虑对应的时定点小数还是定点整数,只需要关心它们的符号位和数值位即可。定点数的编码表示法有4种:原码、补码、反码和移码。
- 原码、补码、反码和移码
- 原码:用机器数的最高位表示数的符号,其余各位表示数的绝对值。如x1=+1110,x2=-1110,字长位8位,则x1原码为:0,0001110,x2原码为1,0001110,其中最高位为符号位。【原码的优点:①与真值对应关系简单,直观,与真值的转换简单②用原码实现乘除运算比较简单】【原码的缺点:①0的表示不唯一,有+0和-0两个编码②用原码实现加减法运算比较复杂】
- 补码:补码表示法种的加减法运算统一采用加法操作实现,正数的补码和原码相同,负数的补码等于负数的绝对值对应的原码取反+1。补码的表示范围如果字长为n+1,则补码表示的范围是-2n~2n-1。
- 反码:负数的反码为按位取反不加1.正数的原码反码补码都相同。反码的缺点:①0的表示不唯一存在+0和-0②表示范围比补码少一个最小负数,因此反码在计算机种很少使用。
- 移码:移码通常用来表示浮点数的阶码,只能表示整数。移码就是给所有数字统一加上一个固定值(如+127),把负数变成正数,方便计算机直接比较大小。(就像给全班考试成绩都+60分,保证没有不及格,排序时分数高的真实值一定更大)
【补码和移码通过取消重复的“-0”,把省下来的编码名额送给-128(补码)或+128(移码),所以能比原码多表示一个数!】
- 补码大小判断
- 原码、补码、反码的符号位相同,正数的机器码相同。
- 原码、反码的表示在数轴上对称,二者都存在+0和-0两个0。
- 补码和移码的表示在数轴上不对称,0的表示唯一,他们比原码和反码多表示一个数。
- 原码很容易判断大小。而负数的补码和反码很难直接判断大小,对于负数,数值位部分越小,则其绝对值越大,即负的越多。
- 注意点【原码、补码、反码、移码的表示范围】:
- 对于原码:如果字长为n+1,则原码表示的整数范围是-(2n-1)~2n-1 。以8位表示为例,则为-127至+127。0浪费了两个,有+0和-0的区别。
- 对于补码:如果字长为n=1,则补码整数的表示范围是-2n~2n-1 ,比原码多表示一个-2n,以8位表示为例将-0的表示给-128了。
- -128的补码(8位):
正常补码范围是-127~+127
但计算机"偷"了一个编码:把原本表示-0的10000000重新定义为-128
这样8位补码就能表示-128~+127共256个数
这就是为什么补码能比原码多表示一个数- 对于移码:以8位表示为例,表示范围是–2n~2n-1
【来自里昂学长的课程图】
1.3 整数的表示
- 无符号整数的表示
- 当一个编码的全部二进制位均为数值位没有符号位时吗,该编码就是无符号整数。
- 对于8位无符号整数,表示范围是0至255,对于有符号整数位-128至+127。
- 有符号整数的表示
- 将符号位数值化,并将符号位放在有效数字前面,就组成了有符号整数。对于原码、补码、反码和移码的表示种,补码表示有符号整数具有优势因为①与原码和反码相比,0的补码表示唯一,00000000,而10000000=-128。②与原码和移码相比,补码运算规则简单,且符号位和数值位可以一起参加运算。③与原码和反码相比,补码比原码和反码多表示一个最小负数,以8位为例就是多了-0的表示,10000000=-128,将-0的表示代表-128.
- 计算机种有符号整数都用补码表示,所以n位有符号整数的表示范围是-2n-1~2n-1-1
1.4 C语言中的整数类型及类型转换
- C语言中的整形数据类型
- C语言中要使用无符号类型要在前面添加unsigned的标识符,如果不指定则默认是有符号整数。
- 字符型一个字节8位是C语言中特殊的类型,默认按照无符号整数解释。
- 对于short、int、long、char这些类型都是按照补码形式存储的。只是有符号整数的最高位待变符号,无符号全部二进制位都代表数值,,没有绝对值。对于有符号和无符号的数表示的数据范围是不同的。
- 有符号数和无符号数之间的转换
- 对于无符号short x=-4321进行unsigned short y=(unsigned short)x;后得到的y值为y=61215。
也就是说位数相同进行强制转换后,每位对应都是相同的,仅仅改变解释这些位的方式。- 对于无符号数65535与有符号数-1进行比较也可以看到补码除最高位都是15位1。也就是无符号数转有符号数与有符号数转换为无符号数都会发生数值的变化。
- 注意:如果同时有无符号数与有符号数参与运算,C语言标准规定按照无符号数进行运算。
- 不同字长整数之间的转换
- 常见的运算是在不同字长的整数之间进行类型转换的。当出现大字长向小字长转换时,如int x=165537 short y=(short) x。最后y的值位=-31071原因是系统把多余的高位部分直接截断,低位部分直接赋值。得到的补码是165537的低16位,取反+1后得到-31071。
165537的补码
低16位为1000 0110 1010 0001
得到-31071- 当出现小字长向大字长转换时,如果原数字时无符号整数,则高位进行零扩展。如果原数字是有符号整数,进行符号扩展,比如16位有符号整数x强制转换为32位有符号y时,因为x符号位是1,所以高16位用1补充。注意char型为8位无符号整数,在其转换为int时高位补0即可。
- 总结:当有符号数和无符号数转换中,如果两个变量的字长不同,则分两种情况讨论。①小字节转大字节则需要进行扩展,如果原数字是无符号则进行0扩展。如果原数字是有符号则进行符号扩展。②大字长转换为小字长,则直接截取低位部分,得到补码,要想得到原值,要进行补码取反+1的操作。
1.5 小结
- 计算机中,通常用来表示主存地址的是【无符号数】,主存地址都是正数因此不需要符号位,直接采用无符号数表示。
- 负数的补码判断大小规则, 数值位部分越小,其绝对值越大,负的越多。【 例如,一个补码由3个1和5个0组成的8位二进制,能表示的最小整数是?解:让符号位取1,要想越小就是负的越多,那么就要绝对值越大,则数值位取最小,也就是1,0000011最后得到的值是-125。】
- C语言中的数据在内存中为补码表示形式。
如该题,实际usi补码是1111,1111,1111,1111。对于si则为取反+1后是1000,0000,0000,0001=-1
2. 运算方法和运算电路
2.1 基本运算部件
在计算机中,运算器由算术逻辑单元(ALU)、移位器、状态寄存器(PSW)和通用寄存器组等组成。其中运算器的基本功能是算术运算于逻辑运算。ALU的核心部件是加法器
- 一位全加器:
知道由三个输入和两个输出构成就可以。具体看图就知道意思。- 串行进位加法器:串行进位加法器 是一种最简单的多位二进制加法器,它通过将多个 一位全加器(Full Adder, FA) 串联起来实现多位加法。它的特点是 进位信号像波浪一样逐级传递,因此得名“串行进位”(Ripple Carry)
✅ 优点
电路简单,容易实现(只需串联全加器)。
适合低位数加法(如 4 位、8 位)。
❌ 缺点
延迟高:进位必须 逐级传递,最坏情况下(如 1111 + 0001),进位要从最低位一直传到最高位。
速度慢:位数越多,延迟越长(N 位加法器延迟 ≈ N × 全加器延迟)。- 并行进位加法器:并行进位加法器(又称 超前进位加法器)是一种 高速多位加法器,它通过 提前计算所有进位 来避免串行进位的延迟问题,从而大幅提升运算速度。
- 为什么需要并行进位加法器?
在 串行进位加法器(Ripple Carry Adder) 中:
进位信号必须 从低位到高位一级一级传递(像波浪一样)。
N 位加法需要等待 N 级进位延迟,速度慢。
并行进位加法器的核心思想:
✅ 不等待进位传递,而是直接计算出每一位的进位!
✅ 优点
速度极快:适合高位加法(如 32/64 位)。
适合现代 CPU:被广泛用于 ALU(算术逻辑单元)。
❌ 缺点
电路较复杂:需要额外逻辑计算 G 和 P。
面积较大:相比串行进位加法器占用更多晶体管。
- 带标志加法器:带标志加法器是一种 不仅能计算加法,还能生成运算状态标志(Flags) 的电路,常用于 CPU 的算术逻辑单元(ALU)。它不仅输出加法结果,还会提供 溢出、进位、零、符号等关键信息,帮助 CPU 进行条件判断(如分支跳转)。
- 算术逻辑单元ALU:算术逻辑单元(ALU) 是计算机CPU的核心部件,负责执行所有的 算术运算(如加减乘除) 和 逻辑运算(如与、或、非、移位等)。它是计算机进行数学计算和逻辑决策的“大脑”。
图:
2.2 定点数的移位运算
当计算机中没有乘除法运算电路时,可以通过加法和移位相结合的方法实现乘除法。对于任意二进制左移相等于乘以2,右移相当于除以2。移位运算可以分为逻辑移位与算术移位。
- 逻辑移位 和 算术移位 的主要区别在于 如何处理符号位(最高位),特别是在 有符号数(补码表示) 的情况下。
- 逻辑移位:特点:不区分符号位,所有位一视同仁。移出的位丢弃,空出的位补 0。适用于无符号数或位操作。
原数据: 01011011 (91)
左移1位:10110110 (182) // 相当于 91 × 2
如果最高位 1 被移出,可能发生溢出!- 算术移位:特点:专门用于有符号数(补码表示),会保护符号位。左移与逻辑左移相同(但需注意溢出)。右移时,高位补符号位(保持正负性)。
原数据: 01011011 (+91)
左移1位:10110110 (-74) // 溢出!91×2=182,但8位补码范是-128~127
总结:
- 逻辑移位:适用于无符号数,右移高位补0。
- 算术移位:适用于有符号数,右移高位补符号位。
- 左移两者相同,但算术左移需注意溢出风险。
- 右移时,算术移位保持符号,逻辑移位直接补0。
算术右移位时,高位补符号位,低位移出:
2.3 定点数的加减运算
定点数(Fixed-Point Number) 是计算机中表示小数的一种方式,它的小数点位置固定(通常隐含在某个固定位置)。定点数的加减运算与整数类似,但需要考虑 小数点对齐 和 溢出处理。
- 补码的加减法运算
- 补码加减法运算特点按二进制运算规则逢二进一。
- 如果做加法运算,两个数补码直接相加。如果做减法,则将被减数与减数的负数补码相加。
- 符号位与数值位一起参与运算,加、减运算结果的符号位也在运算中得出。
- 最终运算的结果丢弃高位,保留n+1位,运算结果还是补码。
如:字长8位,A=15,B=24,A+B与A-B
A+B=+0001111【+】+0011000=00100111=+39
A-B=00001111【+】11101000=11110111=-9
- 溢出判别方法
- 只有当两个符号相同的数相加或两个相异的数相减才可能产生溢出。补码定点数加减运算溢出判别有3种方法。
- ①采用一位符号位:减法运算在机器中是加法器实现的,无论是加法还是减法只要参加操作的两个数相同,结果与原操作数符号不同,则表示溢出。(即:两个正数相加得负,或两个负数相加得正)
- ②采用双符号位:也叫模4补码。存储 两个相同的符号位(如 00 表示正数,11 表示负数)。运算后,检查 两个符号位是否一致,若不一致则说明溢出。
00:正常正数。
01:正溢出(结果超出最大正数)。
10:负溢出(结果小于最小负数)。
11:正常负数。
正确答案是B,A选项模4补码具有模2补码的全部优点且更容易见擦汗加减法中的溢出问题,而存储模4补码仅需要一个符号位。
- ③采用一位符号位根据数值位的进位情况判断溢出:在计算机的 有符号数运算(补码表示) 中,溢出(Overflow) 是指运算结果超出了数据类型能表示的范围。为了快速检测溢出,CPU 可以通过 一位符号位(最高位) 结合 数值位的进位情况 来判断是否发生溢出。这种方法的核心是 观察符号位和数值位进位之间的关系。
- 加减运算电路
- 加减运算电路是计算机硬件中的核心组件,用于执行 二进制数的加法和减法。它通常由 加法器(Adder) 和 控制逻辑 组成,支持有符号数(补码)和无符号数的运算,并能检测溢出、进位等状态。
- 【这里的电路逻辑要掌握,当做减法时,Sub=1,然后Cin也是1,在输入时,多路选择器只做了取反操作,后续Cin+1】
结合该题目来看:
- 加减运算部件:
- ZF为零标志:ZF=1则表示结果F为0。对于无符号和有符号运算ZF都有意义。
- OF溢出标志:判断有符号数运算是否溢出,它是符号位进位与最高位进位的异或结果。对于无符号数运算,OF没有意义。【OF(溢出标志)是CPU状态寄存器中的关键标志位,专门用于检测有符号数运算的溢出。其逻辑表达式为:OF = 符号位进位(C_out) ⊕ 最高数值位进位(C_in)】如:
- 符号标志SF:表示结果的符号,也就是F的最高位,SF=0则为非负,SF=1则为负。对于无符号数运算,SF没有意义。
- 进/借位标志CF:表示无符号数运算时的进位或者借位,判断是否发生溢出。对于有符号数CF没有意义。
- 无符号数大小比较,无符号数比较是通过减法运算的借位标志(CF)来判断大小关系,CPU执行的是隐式的A - B运算,通过检测CF状态来确定结果。
A-B=0 当ZF=1 CF=0 表示A=B
A>B 当ZF=0 CF=0 表示A>B
A<B 当ZF=0 CF=1 表示A<B- 有符号数大小比较**。
- 原码的加减法运算(了解即可)
减法运算转换为加法即可。【原码加减法因其设计复杂性,已被补码取代,但理解其原理有助于掌握计算机算术的发展脉络】
2.4 定点数的乘除运算
- 定点乘法运算
- ①乘法预算的基本原理:符号位有两个乘数异或得到,数值位取绝对值之积。
- ②乘法运算电路:乘法运算电路是计算机算术逻辑单元(ALU)的核心组件之一,用于高效实现二进制数的乘法操作。【非重点】
- 二进制乘法本质:通过移位-相加实现,类似十进制竖式乘法:
- 除法运算:定点数的除法运算是计算机算术中的核心操作之一,其实现方式直接影响处理器的性能和精度。
- 被除数与除数相减,够减则上商为1,不够则上商为0;每次得到的差为中间余数,将除数右移后于上次的中间余数比较。用中间余数减除数够减则上商为1,不够则为0如此反复。
2.5 小结
- ALU作为运算器的核心部件属于组合逻辑电路,最基本的部件是并行加法器。单纯的ALU不能够存储运算结果和中间变量,往往将ALU和寄存器或暂存器相连。
- 地址寄存器MAR属于寄存器而不是运算器。
- 采用双符号位时,第一符号位表示最终结果的符号,第二符号表示运算是否溢出。如果第一符号位与第二符号位相同,则表示没有溢出。如果第一符号位与第二符号为为01则为正溢出,如果是10则为负溢出。
- ZF零标志对于无符号和有符号都有意义。OF溢出标志对无符号运算没有意义。SF符号标志对于无符号运算也没有意义CF进借位标志,对于有符号没有意义。
3. 浮点数的表示和运算
3.1 浮点数的表示
浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点位置根据需要浮动。这样让位数有限的情况下,既扩大了数的表示范围又保持了数的有效精度。例如电子的质量9*10-28g用定点数表示非常不方便。
- 浮点数的表示格式
- 浮点数用于表示实数,通过科学计数法的二进制形式实现,其核心由符号位、阶码(指数)和尾数(有效数字)组成。
- 符号位(S):1位,0=正数,1=负数。
阶码(E):表示指数部分,采用移码(Bias)存储。
尾数(M):表示有效数字,通常隐含最高位的1(规范化形式)。- 阶码的值反映浮点数的小数点实际位置,阶码的位数反映浮点数的表示范围;尾数的位数反映浮点数的精度。
- 浮点数的表示范围
- 原码是关于原点对称的,所以浮点数的范围也是关于原点对称的。
- 运算结果大于最大正数时称为正上溢,小于绝对值最大负数称为负上溢。正上溢和负上溢统称为上溢。数据一旦发生上溢,则计算机必须中断运算操作,进行溢出处理。当结果在0至最小正数之间称为正下溢。当结果在0至绝对值最小负数之间称为负下溢。正下溢与负下溢统称为下溢。
- 浮点数的规格化
- 规格化的核心目标是让浮点数的尾数尽可能占满有效位数,避免存储无效的前导零,从而最大化精度。
- IEEE754标准
- IEEE 754是计算机中浮点数表示和运算的国际标准,定义了二进制和十进制浮点数的格式、舍入规则、异常处理等。
- 其中指数用移码表示,尾数用原码表示。
IEEE754单精度浮点数C6400000H的值是多少?
阶码值=140-127=13
这里要注意阶码的特殊情况:
①阶码全为0,尾数也为0,符号位是0则值为+0。
②阶码全为0,尾数也为0,符号位是1则值为-0。
③阶码全为1,尾数为0,符号位是0则值为正无穷大,符号位是1值为负无穷大。
④阶码全为1,尾数不为0,符号位是1或0,则值为NaN。
⑤阶码全为0,尾数不为0,符号位是0,则规格化公式为(-1)S×小数部分×2-126。
⑥阶码全为0,尾数不为0,符号位是1,则规格化公式为(-1)S×小数部分×-2-126。
⑦对于阶码E在 >0且<255之间的公式是:(-1)s×1.M(M是小数部分)×2E
【里昂学长的图】
- 定点、浮点数表示的区别
- 数值的表示范围:如果定点数和浮点数字长相同,则浮点数表示法所能表示的数值范围远大于定点表示法。
- 精度:字长相同的定点数和浮点数,浮点数扩大了数的表示范围但是精度降低了。
- 数的运算:浮点数包括阶码和尾数两个部分,运算不仅要做尾数的运算还有阶码的运算,且运算要规格化,所以浮点数运算比定点数复杂。
- 溢出问题:定点运算中,运算结果超出数的表示范围会发生溢出,浮点数中,运算结果表示范围不一定溢出,只有规格化后阶码超出所能表示的范围时才发生溢出。
3.2 浮点数的加减运算
浮点数运算的特点时阶码和尾数分开进行。
- 对阶:对阶是浮点数加减运算中的关键步骤,目的是统一两个操作数的阶码(指数),使得它们的数量级相同,从而可以直接对尾数进行加减运算。
- 尾数加减:对阶后按定点原码小数的加减运算规则进行运算。
- 尾数规格化:IEEE754规格化尾数的形式是±1。可能需要进行右归或者左规。左归一次相当于乘以2,右归一次相当于除以2。需要右归时,只需要进行一次。
尾数用原码表示,规格化正数是0.1xx负数应该是1.1xx。- 舍入:一般又4种舍入模式。
- ①就近舍入:0舍1入。当运算结果刚好在两个可表示数的中间时。,选择结果为偶数。如1.24×105+5.04×102=1.24×105+0.0050×105=1.2450×105,则采用就近舍入方式结果是1.24×105。
- ②正向舍入:朝右边最近的可表示数。
- ③负向舍入:朝左边最近的可表示数。
- ④截断法:直接截取所需尾数,丢弃后面的所有位,这种最简单。
- 溢出判断:浮点数溢出分为上溢(Overflow)和下溢(Underflow),判断标准由IEEE 754定义,核心依据是阶码(指数)是否超出可表示范围。
- 阶码执行加减运算时,如果正指数超过127或1023时,发生上溢。如果一个负指数超过了最小允许值-149或-1074时发生下溢。
3.3 C语言中的浮点数类型
- C语言中的float和double型分别对应IEEE754中的单精度浮点数和双精度浮点数。
- 不同类型数的混合运算时,遵循原则时类型提升。如float与double进行运算,需要先将float转为double类型后进行运算,结果也是double类型。这些转换是系统自动进行的,这种转换称为自隐式类型转换。
3.4 数据的大小端和对齐存储
- 数据的"大端方式"和"小端方式"存储
- 大端:高位在低地址,适合人类阅读和网络传输。 小端:低位在低地址,硬件处理更高效。 关键区别:字节的存储顺序,而非位序(位序通常固定)。
- 数据按照"边界对齐"方式存储
- 边界对齐是计算机系统中优化内存访问性能的关键技术,通过将数据存储在特定倍数的内存地址上,减少CPU访问内存的周期数。
- 定义:数据对象的起始地址必须是其自身大小(或编译器指定对齐值)的整数倍。例如:4字节的int应对齐到4的倍数地址(如0x0000, 0x0004, 0x0008)。
- 未对齐(Misaligned):数据跨越多个内存块,需多次访问才能读取完整内容。
- 基本对齐原则:
每个成员的起始地址必须是其自身大小的整数倍。
结构体的总大小必须是其最大成员大小的整数倍(最终填充)。
常见类型大小和对齐要求:
int:4字节(对齐到4的倍数地址)。
char:1字节(对齐到任意地址)。
short:2字节(对齐到2的倍数地址)。
eg1:- eg2: 总大小24字节
解析:
3.5 小结
- 浮点数总位数不变的情况下,阶码位数越多,位数位数越少,即表示的数范围越大,精度越差。
- 基数是浮点数的进制,决定了阶码变化的权重。基数越大,阶码每变化一位,尾数小数点需要移动的尾数就越多,表示的数的绝对值就越大,范围就越大。**但是在浮点数总位数不变的情况下,能表示的不同状态个数是一定的,烦诶雨打则相邻两个浮点数之间的间隔越大,精度就越低。**总位数不变的情况下,基数越大,表示的范围越大,精度越小。
- 基数↑ → 范围↑:指数部分的“杠杆”更强,能表示更大/更小的数。
基数↑ → 精度↓:尾数的“最小步长”变大,数字之间的间隔更稀疏。- 对于补码:
①补码正数(符号位为0):规格化要求尾数的最高有效位(即小数点后第一位)为 1(即形如 0.1xxxx…)。
②补码负数(符号位为1):规格化要求尾数的最高有效位为 0(即形如 1.0xxxx…),因为补码负数的最高有效位为0时,其绝对值最大。
该题目选择C,左移让最高位变为0.- 尾数用原码表示,规格化正数是0.1xx负数应该是1.1xx。
- 对接操作时,在浮点加减运算的对接操作时,阶码增大,则尾数右移。
- 采用规格化的浮点数最主要是为了增加数据的表示精度。
- 浮点运算中,下溢指的是运算结果的绝对值小于机器所能表示的最小绝对值。
- 浮点数运算是否溢出,取决于阶码是否上溢。
- 舍入是浮点数概念,定点数没有舍入,浮点数舍入的情况有2种,对阶和右规格化,舍入不一定产生误差。
4. 小结
- 后续补充