定点数:是一种表示固定小数位数的数值类型,通常表示为一个有符号的整数部分和一个小数部分。

定点小数:如果是有符号数,约定小数点在符号位的后面,如果是无符号数,约定小数点在最前边。
定点小数的是类似:0.XXXXXX这个形式

定点整数:约定小数点在最后边。
定点整数是类似:XXXXXX.0这种形式

浮点数:相当于生活中的科学计数法,小数点的位置是可以不断变化的;且小数点位置的变化,不会影响表达式整体数值的大小。 IEEE 754是由IEEE制定的有关浮点数的工业标准,被广泛采用。

在计算机中,通常是用定点数来表示整数和纯小数,分别称为定点整数和定点小数。 对于既有整数部分、又有小数部分的数,一般用浮点数表示。

定点数加减法 1.无符号数 逢二进一 2.有符号数 (1)原码表示 注:符号位不参与运算 加法运算:同号相加,符号位不变,数值位相加。 减法运算:先判断两个数大小确定结果的符号,绝对值大的减去绝对值小的。 (2)补码表示 注:符号位参与运算 加法运算:补码直接相加 减法运算:被减数的补码+减数相反数的补码

        技巧:把X补码(带符号位)取反+1 ----> -X补码
        技巧:将X原码最右侧一个1前面一直到符号位(不含符号位)直接取反---->X补码

    注:在计算机中,有符号数一般采用补码表示。重点关注补码运算。

/*********************************************************** */

加法是一种基本且频繁使用的操作。现代计算机在硬件层面上实现加法操作,通常是通过加法器电路来完成的。 加法器会接收两个二进制数作为输入,然后按照二进制加法规则进行逐位相加,同时处理可能出现的进位。

减法,虽然其基本原理与手动计算中的减法相似,但在计算机内部实现时,通常会转换为加法来执行。 这是因为计算机内部的电路更擅长执行加法操作,而减法操作可以通过取反和加法的组合来实现。

虽然从原理上看,补码减法是通过取反和加法实现的,但在实际的计算机硬件中,这个过程通常是自动且高效地完成的,无需程序员显式地进行取反和加法的操作。 程序员在编写代码时,只需要使用减法运算符(如“-”),然后计算机硬件和操作系统会自动处理底层的细节。

/*********************************************************** */

一般情况下,用一个专门的算术逻辑部件(ALU)来完成基本逻辑运算和定点数加减运算, 各类定点乘除运算和浮点数运算则可利用加法器或 ALU 和移位器来实现。 ALU 的核心部件是加法器。 注:ALU在CPU中

算术逻辑单元(Arithmetic Logic Unit,简称ALU)是计算机处理器内部的一个核心组件,负责执行基本的算术和逻辑运算。 它是一个能够处理二进制数据并进行快速计算的硬件电路块。 在功能上,ALU主要包括以下几个方面: 1.算术运算 2.逻辑运算 3.比较运算 4.移位运算 5.其他复合运算

加法器是计算机中的一种数位(字)电路,用于执行数字的加法计算。 在电子学中,加法器常用于各种数值的表示和计算,特别是在二进制运算中。 在计算机和一些处理器中,加法器被运用于算术逻辑单元ALU中,或者处理器的其他部分,如计算地址、执行加减操作等类似功能。 因此,加法器是算术逻辑单元(ALU)中的一个重要部件。

/************************************************************* */

补码定点数加减溢出: 正数+正数=负数—->正溢出 负数+负数=正数—->负溢出

溢出检测方法:

1.和的符号位与两个加数的符号位不同

X+Y=Z

Xs Ys Zs(符号位) 0 0 1—>溢出 1 1 0—>溢出 V=1 溢出 V=0 不溢出

V=(Xs&&Ys&&(~Zs)) || ((~Xs)&&(~Ys)&&Zs)

2.最高位和次高位的进位不同

异或: 次高位进位c1 最高位进位cs

V=1 溢出 V=0 不溢出

V=c1 xor cs

3.双符号位判别(只出现在运算中,存储只有一个符号位)

00—>正数 11—>负数 01 10—>溢出

两个符号位为S1 S2

V=1 溢出 V=0 不溢出

V=S1 xor S2

/******************************************** */ 避免溢出 1.检查操作数:在执行减法之前,检查操作数的大小,确保它们不会导致溢出。 2.使用更大的数据类型:如果可能的话,使用更大的数据类型(如 long long 而不是 int )来存储结果,以增加可表示的范围。 3.使用专门的库函数:一些编程语言提供了库函数来处理大整数或进行安全的算术运算,这些函数可以自动处理溢出问题。 4.异常处理:在可能出现溢出的地方添加异常处理代码,以便在发生溢出时能够优雅地处理错误。