先热热身
算术运算,也称为四则运算,包括加法、减法、乘法和除法。此外,算术运算还包括乘方和开方。
在算术中,加减被视为一级运算,乘除被视为二级运算,乘方和开方被视为三级运算。在一道算式中,如果有几级运算存在,应先进行高级运算再进行低一级的运算。例如,3+22×4应先计算乘法,然后计算加法。如果只有同级运算,则按从左至右的顺序进行。如果算式中有括号,应先计算括号内的部分,再按照上述规则进行计算。例如,(3+2)×4应先计算括号内的加法,然后进行乘法。
以下是常见的算术运算:
加法(Addition): 将两个或多个数相加,得到它们的和。例如,3 + 5 = 8。
减法(Subtraction): 从一个数中减去另一个数,得到它们的差。例如,7 - 4 = 3。
乘法(Multiplication): 将两个或多个数相乘,得到它们的积。例如,2 × 6 = 12。
除法(Division): 将一个数除以另一个数,得到它们的商。例如,8 ÷ 2 = 4。
二进制算术运算法则
二进制算术运算是在二进制数字系统中执行的运算。在二进制中,只有两个数字,0和1。
二进制加法
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10(二进制中的2,写作0,进位到下一位)
例如:
1101 (13)
+1010 (10)
----
10111 (23)
二进制减法
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
如果需要借位,从高位借1
例如:
1101 (13)
-1010 (10)
----
11 (3)
二进制乘法
0 × 0 = 0
0 × 1 = 0
1 × 0 = 0
1 × 1 = 1
例如:
1101 (13)
×1010 (10)
----
11010 (13 × 2 = 26)
11010 (13 × 10 = 130)
----
10011110 (143)
二进制除法
1 ÷ 1 = 1
0 ÷ 1 = 0
1 ÷ 0 = 无穷大(不合法,因为除数不能为0)
如果需要,可以使用小数和继续除法
例如:
11010 (26)
÷ 101 (5)
----
101 (5)
-101
----
100 (4)
-100
----
0 (0)
注意:在计算机中,二进制运算通常与固定的位数和溢出处理有关。
机器数的运算
机器数是计算机中用来表示数字的二进制形式。在机器数的加减运算中,通常需要考虑溢出和进位的问题。
机器数的加法运算
1、从最低位开始逐位相加,考虑进位。
2、记录每一位相加的结果,以及是否有进位。
3、将进位加到下一位相加的结果中。
4、重复这个过程,直到所有位都相加完毕。
机器数的减法运算
1、从最低位开始逐位相减,考虑借位。
2、记录每一位相减的结果,以及是否需要借位。
3、如果需要,从高位借1,并继续减法。
4、重复这个过程,直到所有位都相减完毕。
补码的运算法则
补码加法
1、逐位相加: 从最低位开始,对两个补码数的对应位进行二进制加法,包括进位。
2、忽略最高位的进位: 在加法过程中,忽略最高位的进位。
3、溢出处理: 如果相加的两个正数得到负数结果,或者两个负数得到正数结果,发生了溢出。溢出时,结果超过了补码能表示的范围,产生错误的结果。
4、最高位的溢出: 如果最高位有进位(溢出),则将该位丢弃。这是因为最高位表示的是符号位,进位表示溢出,所以最高位的溢出是不需要保留的。
5、结果为补码形式: 最终的结果是一个补码,可以直接在计算机中表示。
补码加法的例子
例如,对于两个4位二进制补码数的加法:
1101 (-3)
+ 1010 (-6)
--------
10111 (-9)
在这个例子中,逐位相加得到的结果是 10111,最高位有进位,因此最终结果是 -9 的补码形式。
补码的加法运算遵循这些规则,而在实际计算机系统中,硬件和软件都支持补码运算。
补码减法
补码减法是对两个补码数进行相减的过程。补码的减法可以通过将减法问题转换为加法问题来处理
补码减法步骤
1、取负数的补码: 将减数(被减数)的补码计算出来,即将每一位取反(0变成1,1变成0),然后加1。
2、将减法转换为加法: 将减法问题转换为对两个补码数的加法问题。这相当于将减法问题转化为加上减数的相反数。
3、使用补码加法规则进行相加: 对转换后的两个补码数进行逐位相加,包括进位,最后忽略最高位的进位。
4、检查溢出: 检查最高位的进位,如果发生了溢出,说明结果超出了补码的表示范围,产生了错误的结果。
5、结果为补码形式: 最终的结果是一个补码,可以直接在计算机中表示。
补码减法的例子
例如,对于两个4位二进制补码数的减法:
1101 (-3, 被减数)
- 1010 (-6, 减数)
--------
10011 (3, 结果)
在这个例子中,我们首先计算减数的补码,即将 1010 取反得到 0101,然后加1得到 -1010。接着,我们将减法问题转化为加法问题,对被减数 1101 和 -1010 进行相加,得到结果 10011,即为3的补码形式。最高位没有进位,没有发生溢出。
机器数的乘法运算
机器数乘法步骤
1、从最低位开始,对每一位进行乘法。
2、将每一位的乘积相加,得到最终结果。
例子:
1101 (13)
× 1010 (10 )
-------
11010 (13 × 2 = 26 )
11010 (13 × 10 = 130 )
-------
10011110 (143)
机器数的除法运算
机器数除法步骤
1、从最高位开始,将被除数逐位除以除数。
2、如果被除数小于除数,商的当前位为0,继续处理下一位。
3、如果被除数大于等于除数,将除数放到被除数上方,并减去。商的当前位为1。
4、重复这个过程,直到所有位都处理完毕。
例子:
11010 (26, 被除数)
÷ 101 (5, 除数)
-------
101 (5, 商)
-101
----
100 (4)
-100
----
0 (0)
在机器数的乘除运算中,需要特别注意除数不能为0的情况,因为除以0是不合法的。此外,在计算机中,通常需要考虑位数的溢出和结果的精度问题。
浮点数运算
浮点数在计算机中以二进制形式表示,通常由两个部分组成:尾数(mantissa)和指数(exponent)。这种表示方式称为浮点数表示法,主要用于处理实数的近似值。在 IEEE 754 标准中,浮点数的表示有单精度和双精度两种形式,分别为32位和64位。
IEEE 754 单精度浮点数表示:
符号位(1位): 表示浮点数的正负。
指数位(8位): 用于存储指数部分,通过偏移值来表示实际指数。
尾数位(23位): 存储浮点数的尾数部分,通常称为尾数或者尾数部分。
例如,一个单精度浮点数的表示如下:
符号位 | 0 |
指数位 | 10000011 |
尾数位 | 10110111000000000000000 |
符号位指数位尾数位 | 01000001110110111000000000000000 |
在这个例子中,符号位为0,指数位为10000011(二进制),尾数位为10110111000000000000000(二进制)。
IEEE 754 双精度浮点数表示:
符号位(1位): 表示浮点数的正负。
指数位(11位): 用于存储指数部分,通过偏移值来表示实际指数。
尾数位(52位): 存储浮点数的尾数部分,通常称为尾数或者尾数部分。
例如,一个双精度浮点数的表示如下:
符号位 | 0 |
指数位 | 10000000001 |
尾数位 | 1011011100000000000000000000000000000000000000000000 |
符号位指数位尾数位 | 0100000000011011011100000000000000000000000000000000000000000000 |
在这个例子中,符号位为0,指数位为10000000001(二进制),尾数位为1011011100000000000000000000000000000000000000000000(二进制)。
这样的浮点数表示法允许计算机用二进制形式来表示很大范围的实数,但由于二进制不能精确表示一些十进制小数,可能会存在精度损失。在程序设计中,特别是涉及精确计算的情况下,需要小心处理浮点数运算可能引起的误差。
浮点加法运算
浮点加减运算涉及对浮点数进行加法和减法操作。浮点数通常由两个部分组成:尾数(mantissa)和指数(exponent)。
1、对齐小数点: 确保两个浮点数的小数点对齐,即调整它们的指数使之相同。
2、尾数相加: 将对齐后的尾数进行二进制加法。注意处理可能的进位。
3、规格化: 确保尾数的最高位是1。如果相加后的尾数不规格化,需要左移一位并相应地增加指数。
4、溢出和舍入: 处理溢出情况,同时进行舍入操作,确保结果在浮点数表示的范围内。
5、更新指数: 更新结果的指数部分。
6、检查和处理特殊情况: 检查是否有零、无穷大、NaN(Not a Number)等特殊情况,并进行相应处理。
浮点减法运算
1、减法运算可以通过将减数取负数,然后将减法问题转化为加法问题来处理。具体步骤如下:
2、取负数: 将减数的符号位取反,即得到减数的负数。
3、使用浮点加法: 将被减数和取负后的减数进行浮点加法运算。
4、检查和处理特殊情况: 检查是否有零、无穷大、NaN等特殊情况,并进行相应处理。
浮点数运算可能面临精度损失和舍入误差,因此在编写程序时,应当小心处理浮点数运算可能引起的问题。一些编程语言和库提供了专门的工具和函数来处理浮点数运算的精度和误差。
浮点乘法运算
浮点乘除运算涉及对浮点数进行乘法和除法操作。浮点数通常由尾数(mantissa)和指数(exponent)两部分组成。
1、尾数相乘: 将两个浮点数的尾数进行二进制乘法。
2、规格化: 对乘法结果进行规格化,确保尾数最高位是1。
3、指数相加: 将两个浮点数的指数相加,得到新的指数。
4、溢出和舍入: 处理可能的溢出情况,并进行舍入操作,确保结果在浮点数表示的范围内。
5、检查和处理特殊情况: 检查是否有零、无穷大、NaN等特殊情况,并进行相应处理。
浮点除法运算
1、尾数相除: 将被除数的尾数除以除数的尾数。
2、规格化: 对除法结果进行规格化,确保尾数最高位是1。
3、指数相减: 将被除数的指数减去除数的指数,得到新的指数。
4、溢出和舍入: 处理可能的溢出情况,并进行舍入操作,确保结果在浮点数表示的范围内。
5、检查和处理特殊情况: 检查是否有零、无穷大、NaN等特殊情况,并进行相应处理。
在浮点数运算中,同样需要考虑精度损失和舍入误差。特别是在比较浮点数时,应当避免直接使用等号,而是使用一个小的容忍度范围来判断它们是否相等。
电脑计算器
电脑常用的计算器:标准计算器、科学计算器、绘图、程序员、日期计算
(........一言难尽,喝口茶,不想写了就到这吧)