当前位置: 首页 > 编程笔记 >

数制算术

戚均
2023-03-14
本文向大家介绍数制算术,包括了数制算术的使用技巧和注意事项,需要的朋友参考一下

数系统 是一套用来表示从一个共同的基础或基数得到的值的符号。在数字中,可以使用数字,数字在数字中的位置以及数字系统的基数来确定每个数字的值。基数定义为数字系统中可用的总位数。这称为位置编号系统。

编号系统
基础
使用的数字
二元
2
0,1
八进制
8
0、1、2、3、4、5、6、7
小数
10
0、1、2、3、4、5、6、7、8、9
十六进制
16
0、1、2、3、4、5、6、7、8、9,A,B,C,D,E,F


诸如加,减,乘和除的算术运算是在各种基数基数中执行的。这些算术运算也可以使用r的补码和(r-1)的补码表示。

这些表示法掌握各种算术运算的基本定律:

(i)唯一存在法:任何两个数字的和与乘积是唯一存在的。其中0是加法的标识元素,1是乘法的标识元素。

(ii)关联法:二进制数的加法和乘法是关联的。

(iii)交换律:二进制数的加法和乘法是交换的。

(iv)分配定律:二进制数的乘积是另外分配两个或多个项。

现在,下面解释各种数字系统的算术运算。

二进制数的算术运算:

在二进制系统中,只有两个符号或可能的数字值,即0和1。由只有两个工作状态或可能条件的任何设备表示。通常,用下标2或二进制(B)表示。

二进制算术是各种数字系统的重要组成部分。您可以使用各种方法对二进制数进行加,减,乘和除。这些操作比十进制数算术运算容易得多,因为二进制系统只有两位:0和1。

二进制加法和减法的执行方式与十进制加法和减法相同。当我们执行二进制加法运算时,将有两个输出:Sum(S)和Carry(C)。二进制加法有四个规则。如下所示,


输入A
输入B
总和(S)
A + B
携带(C)
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1

二进制减法有四个规则。如下所示,

输入A
输入B
减法(S)
AB
借用(B)
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0


下一个高阶位需要借位1才能从0中减去1。因此,结果变为0。

二进制乘法有四个规则。如下所示,


输入A
输入B
乘(M)
AxB
0
0
0
0
1
0
1
0
0
1
1
1


只要至少一个输入为0,则乘法始终为0。

任何除法都有四个部分:股息,除数,商和余数。这些是针对二进制除法的以下规则,

输入A
输入B
除法(D)
A / B
0
0
没有定义的
0
1
0
1
0
没有定义的
1
1
1



每当除数为0时,结果始终是不确定的。

八进制数的算术运算:

它具有8位数的基数,范围从0到7(即0、1、2、3、4、5、6、7)。通常用下标8或八进制(o)表示。

八进制数的算术运算也与十进制算术运算相同。八进制数的加法表如下:




+
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
1
2
3
4
5
6
7
10
2
2
3
4
5
6
7
10
11
3
3
4
5
6
7
10
11
12
4
4
5
6
7
10
11
12
13
5
5
6
7
10
11
12
13
14
6
6
7
10
11
12
13
14
15
7
7
10
11
12
13
14
15
16


借助上表,我们可以执行八进制数的加法运算。

同样,我们可以执行与八进制数减法相同的八进制数减法。但是,您只能借用数字7,这是八进制数字系统中允许的最大数字。

 在八进制数的乘法运算中,如果乘积小于八进制的基数(即8),则将其作为结果,否则将其除以八进制的基数(即8),并将余数作为LSB(最低有效位)。商被视为下一个有效数字的进位。

 同样,可以按照十进制数的划分规则执行八进制数的划分,但最大允许位数为7。


十六进制数的算术运算:

它具有从0到F的16位数字(即0、1、2、3、4、5、6、7、8、9和A,B,C,D,E,F)。A,B,C,D,E,F分别是10、11、12、13、14、15的等效单位数字。通常,它用下标16或十六进制(H)或(h)表示。

可以使用十六进制数的加法表对十六进制数进行算术运算,如下所示:

+
0
1
2
3
4
5
6
7
8
9
一种

C
d
Ë
F
0
0
1
2
3
4
5
6
7
8
9
一种

C
d
Ë
F
1
1
2
3
4
5
6
7
8
9
一种

C
d
Ë
F
10
2
2
3
4
5
6
7
8
9
一种

C
d
Ë
F
10
11
3
3
4
5
6
7
8
9
一种

C
d
Ë
F
10
11
12
4
4
5
6
7
8
9
一种

C
d
Ë
F
10
11
12
13
5
5
7
7
8
9
一种

C
d
Ë
F
10
11
12
13
14
6
6
7
8
9
一种

C
d
Ë
F
10
11
12
13
14
15
7
7
8
9
一种

C
d
Ë
F
10
11
12
13
14
15
16
8
8
9
一种

C
d
Ë
F
10
11
12
13
14
15
16
17
9
9
一种

C
d
Ë
F
10
11
12
13
14
15
16
17
18岁
一种
一种

C
d
Ë
F
10
11
12
13
14
15
16
17
18岁
19


C
d
Ë
F
10
11
12
13
14
15
16
17
18岁
19
1A
C
C
d
Ë
F
10
11
12
13
14
15
16
17
18岁
19
1A
1B
d
d
Ë
F
10
11
12
13
14
15
16
17
18岁
19
1A
1B
1C
Ë
Ë
F
10
11
12
13
14
15
16
17
18岁
19
1A
1B
1C
一维
F
F
10
11
12
13
14
15
16
17
18岁
19
1A
1B
1C
一维
1E


借助上表,我们可以执行十六进制数字的加法运算。

十六进制数的减法可以通过使用补码方法或简单的十进制减法来执行。简单十六进制减法的规则是从紧邻的较高位借来的数字计为16。

在十六进制数的乘法中,如果乘积小于十六进制的基数(即16),则将其作为结果,否则将其除以十六进制的基数(即16),并将其余部分作为LSB(最低有效位)。商被视为下一个有效数字的进位。使用这些规则,您可以为十六进制乘法表。

同样,可以通过遵循十进制除法规则来进行十六进制除法,但是最大允许位数将为F(十进制= 15)。

小数的算术运算:

十进制数的算术运算非常流行并且容易得多。这些操作在其他号码系统中也相同。

 类似资料:
  • 任何帮助都会很好。

  • 浮点数在计算机中表达为二进制(binary)小数。例如:十进制小数: 0.125 是 1/10 + 2/100 + 5/1000 的值,同样二进制小数: 0.001 是 0/2 + 0/4 + 1/8。这两个数值相同。唯一的实质区别是第一个写为十进制小数记法,第二个是二进制。 遗憾的是,大多数十进制小数不能精确的表达二进制小数。 这个问题更早的时候首先在十进制中发现。考虑小数形式的 1/3 ,

  • 输出如下: 第一个数组: [[ 0. 1. 2.] [ 3. 4. 5.] [ 6. 7. 8.]] 第二个数组: [10 10 10] 两个数组相加: [[ 10. 11. 12.] [ 13. 14. 15.] [ 16. 17. 18.]] 两个数组相减: [[-10. -9. -8.] [ -7. -6. -5.] [ -4. -3. -2.]] 两个数组相乘: [[ 0. 1

  • 我试图理解加工过程,所以我做了一些随机的事情。我正在使用下面的代码,我想绘制并计算左上角绘制的点的数量: 但相反,我一直得到同样的数字:

  • 其想法是通过HTTP实现RFC3091(“Pi数字生成协议”)。我一直很难找到一种流式(和/或插口)算法,它实际上可以产生正确的十进制扩展。 是的,有很多实现,但大多数都需要预先分配缓冲区,缓冲区的大小等于请求的位数。显然,这并不能产生无穷无尽的数字流。 用C/Py/PHP/etc实现是理想的。 谢谢

  • 我有两个错误。当我使用 二进制运算符' 我需要帮助!