admin 管理员组

文章数量: 1184232


2024年1月25日发(作者:java修改map指定key的value)

1.十进制

十进制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一。

历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算。设计十进制机器比设计二进制机器复杂得多。而自然界具有两种稳定状态的组件普遍存在,如开关的开和关,电路的通和断,电压的高和低等,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进制计算机。

2. 二进制

二进制以2为基数,只用0和1两个数字表示数,逢2进一。

二进制与遵循十进制数遵循一样的运算规则,但显得比十进制更简单。例如:

(1)加法:0+0=0 0+1=1 1+0=1 1+1=0

(2)减法:0-0=0 1-1=0 1-0=1 0-1=1

(3)乘法:0*0=0 0*1=0 1*0=0 1*1=1

(4)除法:0/1=0 1/1=1,除数不能为0

二、进制转换

1.二进制与十进制数间的转换

(1)二进制转换为十进制

将每个二进制数按权展开后求和即可。请看例题:

把二进制数()2=1*2

二进制数转换为十进制数:

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

所以,设有一个二进制数:0110 0100,转换为10进制为:

下面是竖式:

2+0*2+1*2+1*2+0*2+1*2=()10

10-1-2-3

0110 0100 换算成 十进制

第0位 0 * 2 = 0

第1位 0 * 2 = 0

第2位 1 * 2 = 4

第3位 0 * 2 = 0

第4位 0 * 2 = 0

第5位 1 * 2 = 32

第6位 1 * 2 = 64

第7位 0 * 2 = 0

---------------------------

100

用横式计算为:

0 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 0 * 2 = 100

0乘以多少都是0,所以我们也可以直接跳过值为0的位:

1 * 2 + 1 * 2 + 1 * 2 + 1 * 2 = 100

23563210

(2)十进制转换为二进制

一般需要将十进制数的整数部分与小数部分分开处理。

整数部分计算方法:除2取余法 请看例题:

用2辗转相除至结果为1

将余数和最后的1从下向上倒序写 就是结果

例如302

302/2 = 151 余0

151/2 = 75 余1

75/2 = 37 余1

37/2 = 18 余1

18/2 = 9 余0

9/2 = 4 余1

4/2 = 2 余0

2/2 = 1 余0

故二进制为0

十进制整数转二进制数:"除以2取余,逆序输出"

例: (89)10=(1011001)2

2 89

2 44 …… 1

2 22 …… 0

2 11 …… 0

2 5 …… 1

2 2 …… 1

2 1 …… 0

0 …… 1

小数部分计算方法:乘2取整法,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(0或1)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。请看例题:

例:

(0.625)10= 2

0.625

X 2

1.25

X 2

0.5

X 2

1.0

将()10转换成二进制。()10=()2

1. 125

0. 25

0. 5

1. 0

2.二进制与十六进制数间的转换

二进制 十六进制

0 0

1 1

10 2

11 3

100 4

101 5

110 6

111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

(1) 二进制数转换成十六进制数

二进制数转换成十六进制数方法如下,以二进制数1101110为例:

将二进制数从右面开始以四位为一组分组,最左面不够四位的补0,按上表查得对应的十六进制数,组合起来以后就成了。

4个2进制位为一个16进制数

如01011100,可看成是两组2进制数0101和1100,则这个数就是16进制的5C。

0110 1110的十六进制数是6E

(2) 十六进制转换成二进制方法

十六进制转换成二进制方法如下,以十六进制数3E为例:

将十六进制的每一位转换成四位二进制数,不足四位的在左面补0,组合起来即可得到二进制数。

3E的二进制数是00111110,既是111110

进制转16进制:

10转16

用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为

十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为个位数。

16转10:

用相反的道理,将十位数乘以16加上个位数。如5A,将5乘以16得80,加上A的10进制10,结果是90。

十六进制数转换成十进制数:

2进制,用两个阿拉伯数字:0、1;

8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;

10进制,用十个阿拉伯数字:0到9;

16进制

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

假设有一个十六进数 2AF5, 那么如何换算成10进制呢?

用竖式计算:

2AF5换算成10进制:

5 * 16 + F * 16 + A * 16 + 2 * 16 = 10997

(别忘了,在上面的计算中,A表示10,而F表示15)

0123

现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。

4.二进制转为 8 进制

二进制转为 8 进制,可以 3 位二进制位编为一组(不够左侧补 0),然后从右边开始每三位按如下方式替换:

000 --- 0,

001 --- 1,

010 --- 2,

011 --- 3,

100 --- 4,

101 --- 5,

110 --- 6,

111 --- 7.

比如转换二进制数 那么分组为

001 110 101 010 100 按照转换方法对应转换

1 6 5 2 4

所以 (2) = 16524(8)

又如转换为 16 进制

0000 --- 0, 0001 --- 1, 0010 --- 2, 0011 --- 3

0100 --- 4, 0101 --- 5, 0110 --- 6, 0111 --- 7

1000 --- 8, 1001 --- 9, 1010 --- A, 1011 --- B

1100 --- C, 1101 --- D, 1110 --- E, 1111 --- F

此时分组为 4 位二进制数为一组

比如转换二进制 011010,分组:

0010 1010 1001 0101 1010

2 A 9 5 A


本文标签: 二进制 进制 部分 数字 转换