进制转换

10进制转2进制

此处计算,20 的 2 进制结果是 10100

连续除以 2,然后吧余数写到右边,知道除尽。在从下到上把2进制结果集读出来

image-20210308211158768

2进制转10进制

此处计算,10100 的 10 进制结果是 20

将2进制的结果,从后到前排列,然后乘以 2 的 n 次方(n从0每次自增1)。最后把结果集相加。

0 * 2^0 = 0
0 * 2^1 = 0
1 * 2^2 = 4
0 * 2^3 = 0
1 * 2^4 = 16

然后将计算的结果,依次相加

16 + 0 + 4 + 0 +0 = 20

8进制转2进制

20 的 8进制 是 24

开始计算 8进制 数据 24 的 2进制  

首先把 24 拆分成 2 和 4,然后分别计算 2进制结果

2 的 2进制 计算结果是:10
4 的 2进制 计算结果是:100

将2的2进制、4的2进制结果拼装起来

则 8进制 数据24 的 2进制 计算结果是:10100

10进制转8进制

此处计算,20 的 8 进制结果是 24

image-20210308222638396

进制运算

20 的 2 进制结果是 10100

15 的 2 进制结果是 1111

加法运算

满2进1

image-20210308223149114

减法运算

借1个等于2,然后运算

image-20210308224342300

进制位运算

计算机中的数在内存中都是以二进制形式进行存储的,用位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。

& 与运算 两个位都是 1 时,结果才为 1,否则为 0,如

1 0 0 1 1 
1 1 0 0 1 
------------------------------
1 0 0 0 1 

| 或运算 两个位都是 0 时,结果才为 0,否则为 1,如

1 0 0 1 1 
1 1 0 0 1 
------------------------------
1 1 0 1 1 

^ 异或运算,两个位相同则为 0,不同则为 1,如

1 0 0 1 1 
1 1 0 0 1 
-----------------------------
0 1 0 1 0 

~ 取反运算,0 则变为 1,1 则变为 0,如

1 0 0 1 1 
-----------------------------
0 1 1 0 0