“软件设计师精讲 数据的表示 进制转换”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第216行: 第216行:
 
二进制转八进制与十六进制数。
 
二进制转八进制与十六进制数。
  
八进制对应数码:01234567
+
八进制对应数码:0、1、2、3、4、5、6、7
 
{| class="wikitable"
 
{| class="wikitable"
 
|+八进制对应数码
 
|+八进制对应数码
第250行: 第250行:
 
!6
 
!6
 
|}
 
|}
 +
十六进制对应数码:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)

2024年3月12日 (二) 14:58的版本

https://www.bilibili.com/video/BV13U4y1E7oA/?p=3

数据的表示

考点1:进制转换

考点2:码制(原码/反码/补码/移码)

考点3:浮点数的表示

考点4:逻辑运算



https://www.bilibili.com/video/BV13U4y1E7oA/?p=4

考点1:进制转换

进制 数码 基数 位权
十进制(D) 0,1,2,3,4,5,6,7,8,9 10 10k
二进制(B) 0,1 2 2k
十六进制(H) 0~9,A,B,C,D,E,F 16 16k
10 A
11 B
12 C
13 D
14 E
15 F

按权展开法

R进制转十进制使用按权展开法,其具体操作方式为:将R进制的每一位数值用Rk形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。

当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。

例如二进制10100.01=1×24+1×22+1×2-2

例如七进制604.01=6×72+4×70+1×7-2


短除法

十进制转R进制使用短除法(除基取余法)。

例如将94转换为二进制数。

2|94 0
2|47 1
2|23 1
2|11 1
2|5 1
2|2 0
2|1 1
0

得到结果为 1011110


除以基数,取余数作为结果,除到商为0截止

二进制的基数是2,所以:

94除以基数2,商47,余0;

47除以2,商23,余1;

23除以2,商11,余1;

11除以2,商5,余1;

5除以2,商2,余1;

2除以2,商1,余0;

1除以2,商0,余1。

余数从下往上记录


94转换为十六进制:

94除以基数16,商5,余14;

14除以基数16,商0,余14;

在十六进制中,十进制的14对应十六进制的E;

所以94(D)=5E(H)

按权展开进行验证,5×161+14×160=5×16+14×1=80+14=94。



减法

十进制转二进制使用减法。例如将94转换为二进制数。

20=1

21=2

22=4

23=8

24=16

25=32

26=64

27=128

28=256

29=512

210=1024

小于且离94最近的乘幂为64

94-64=30(26=64

小于且离30最近的乘幂为16

30-16=14(24=16

小于且离14最近的乘幂为8

14-8=6(23=8

小于且离6最近的乘幂为4

6-4=2(22=4

小于且离2最近的乘幂为2

2-2=0(21=2

结束

位号 6 5 4 3 2 1 0
取值 1 0 1 1 1 1 0

得到结果为 1011110

进制转换

二进制转八进制与十六进制数。

八进制对应数码:0、1、2、3、4、5、6、7

八进制对应数码
八进制 0 1 2 3 4 5 6 7
二进制 000 001 010 011 100 101 110 111

二进制转八进制,按3位一组进行转换,不足3位在左侧补0。

10 001 110
2 1 6

十六进制对应数码:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)