“软件设计师精讲 数据的表示 进制转换”的版本间的差异
Jihongchang(讨论 | 贡献) (建立内容为“1”的新页面) |
Jihongchang(讨论 | 贡献) 小 (Jihongchang移动页面软件设计师精讲 数据的表示至软件设计师精讲 数据的表示 进制转换,不留重定向) |
||
(未显示同一用户的37个中间版本) | |||
第1行: | 第1行: | ||
− | 1 | + | https://www.bilibili.com/video/BV13U4y1E7oA/?p=3 |
+ | |||
+ | === 数据的表示 === | ||
+ | 考点1:进制转换 | ||
+ | |||
+ | 考点2:码制(原码/反码/补码/移码) | ||
+ | |||
+ | 考点3:浮点数的表示 | ||
+ | |||
+ | 考点4:逻辑运算 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | https://www.bilibili.com/video/BV13U4y1E7oA/?p=4 | ||
+ | |||
+ | === 考点1:进制转换 === | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | !进制 | ||
+ | !数码 | ||
+ | !基数 | ||
+ | !位权 | ||
+ | |- | ||
+ | |十进制(D) | ||
+ | |0,1,2,3,4,5,6,7,8,9 | ||
+ | |10 | ||
+ | |10<sup>k</sup> | ||
+ | |- | ||
+ | |二进制(B) | ||
+ | |0,1 | ||
+ | |2 | ||
+ | |2<sup>k</sup> | ||
+ | |- | ||
+ | |十六进制(H) | ||
+ | |0~9,A,B,C,D,E,F | ||
+ | |16 | ||
+ | |16<sup>k</sup> | ||
+ | |} | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | |10 | ||
+ | |A | ||
+ | |- | ||
+ | |11 | ||
+ | |B | ||
+ | |- | ||
+ | |12 | ||
+ | |C | ||
+ | |- | ||
+ | |13 | ||
+ | |D | ||
+ | |- | ||
+ | |14 | ||
+ | |E | ||
+ | |- | ||
+ | |15 | ||
+ | |F | ||
+ | |} | ||
+ | |||
+ | === 按权展开法 === | ||
+ | R进制转十进制使用按权展开法,其具体操作方式为:将R进制的每一位数值用R<sup>k</sup>形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。 | ||
+ | |||
+ | 当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。 | ||
+ | |||
+ | 例如<u>二进制</u>10100.01=1×2<sup>4</sup>+1×2<sup>2</sup>+1×2<sup>-2</sup> | ||
+ | |||
+ | 例如<u>七进制</u>604.01=6×7<sup>2</sup>+4×7<sup>0</sup>+1×7<sup>-2</sup> | ||
+ | |||
+ | |||
+ | === 短除法 === | ||
+ | 十进制转R进制使用短除法(除基取余法)。 | ||
+ | |||
+ | 例如将94转换为二进制数。 | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | |<nowiki>2|</nowiki><u>94</u> | ||
+ | |余 | ||
+ | |0 | ||
+ | |- | ||
+ | |<nowiki>2|</nowiki><u>47</u> | ||
+ | | | ||
+ | |1 | ||
+ | |- | ||
+ | |<nowiki>2|</nowiki><u>23</u> | ||
+ | | | ||
+ | |1 | ||
+ | |- | ||
+ | |<nowiki>2|</nowiki><u>11</u> | ||
+ | | | ||
+ | |1 | ||
+ | |- | ||
+ | |<nowiki>2|</nowiki><u>5</u> | ||
+ | | | ||
+ | |1 | ||
+ | |- | ||
+ | |<nowiki>2|</nowiki><u>2</u> | ||
+ | | | ||
+ | |0 | ||
+ | |- | ||
+ | |<nowiki>2|</nowiki><u>1</u> | ||
+ | | | ||
+ | |1 | ||
+ | |- | ||
+ | |0 | ||
+ | | | ||
+ | | | ||
+ | |} | ||
+ | 得到结果为 1011110 | ||
+ | |||
+ | |||
+ | |||
+ | 除以基数,取余数作为结果,<u>'''<big>除到商为0截止</big>'''</u>。 | ||
+ | |||
+ | 二进制的基数是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,<u>'''<big>商0</big>'''</u>,余1。 | ||
+ | |||
+ | <u>'''<big>余数从下往上记录</big>'''</u> | ||
+ | |||
+ | |||
+ | 94转换为十六进制: | ||
+ | |||
+ | 94除以基数16,商5,余14; | ||
+ | |||
+ | 14除以基数16,商0,余14; | ||
+ | |||
+ | 在十六进制中,十进制的14对应十六进制的E; | ||
+ | |||
+ | 所以94(D)=5E(H) | ||
+ | |||
+ | 按权展开进行验证,5×16<sup>1</sup>+14×16<sup>0</sup>=5×16+14×1=80+14=94。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === 减法 === | ||
+ | 十进制转二进制使用减法。例如将94转换为二进制数。 | ||
+ | |||
+ | 2<sup>0</sup>=1 | ||
+ | |||
+ | 2<sup>1</sup>=2 | ||
+ | |||
+ | 2<sup>2</sup>=4 | ||
+ | |||
+ | 2<sup>3</sup>=8 | ||
+ | |||
+ | 2<sup>4</sup>=16 | ||
+ | |||
+ | 2<sup>5</sup>=32 | ||
+ | |||
+ | 2<sup>6</sup>=64 | ||
+ | |||
+ | 2<sup>7</sup>=128 | ||
+ | |||
+ | 2<sup>8</sup>=256 | ||
+ | |||
+ | 2<sup>9</sup>=512 | ||
+ | |||
+ | 2<sup>10</sup>=1024 | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | |小于且离94最近的乘幂为64 | ||
+ | 94-<u>64</u>=30(<u>2<sup>6</sup>=64</u>) | ||
+ | |- | ||
+ | |小于且离30最近的乘幂为16 | ||
+ | 30-<u>16</u>=14(<u>2<sup>4</sup>=16</u>) | ||
+ | |- | ||
+ | |小于且离14最近的乘幂为8 | ||
+ | 14-<u>8</u>=6(<u>2<sup>3</sup>=8</u>) | ||
+ | |- | ||
+ | |小于且离6最近的乘幂为4 | ||
+ | 6-<u>4</u>=2(<u>2<sup>2</sup>=4</u>) | ||
+ | |- | ||
+ | |小于且离2最近的乘幂为2 | ||
+ | 2-<u>2</u>=0(<u>2<sup>1</sup>=2</u>) | ||
+ | |||
+ | 结束 | ||
+ | |} | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | |位号 | ||
+ | |6 | ||
+ | |5 | ||
+ | |4 | ||
+ | |3 | ||
+ | |2 | ||
+ | |1 | ||
+ | |0 | ||
+ | |- | ||
+ | |取值 | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |} | ||
+ | 得到结果为 1011110 | ||
+ | |||
+ | === 进制转换 === | ||
+ | 二进制转八进制与十六进制数。 | ||
+ | |||
+ | 八进制对应数码:0、1、2、3、4、5、6、7 | ||
+ | {| class="wikitable" | ||
+ | |+八进制对应二进制 | ||
+ | !八进制 | ||
+ | !0 | ||
+ | !1 | ||
+ | !2 | ||
+ | !3 | ||
+ | !4 | ||
+ | !5 | ||
+ | !6 | ||
+ | !7 | ||
+ | |- | ||
+ | |二进制 | ||
+ | |000 | ||
+ | |001 | ||
+ | |010 | ||
+ | |011 | ||
+ | |100 | ||
+ | |101 | ||
+ | |110 | ||
+ | |111 | ||
+ | |} | ||
+ | '''<big>二进制转八进制,按3位一组进行转换,不足3位在左侧补0。</big>''' | ||
+ | |||
+ | |||
+ | 10001110(B)转八进制: | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | !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) | ||
+ | {| class="wikitable" | ||
+ | |+十六进制对应二进制 | ||
+ | !十六进制 | ||
+ | !0 | ||
+ | !1 | ||
+ | !2 | ||
+ | !3 | ||
+ | !4 | ||
+ | !5 | ||
+ | !6 | ||
+ | !7 | ||
+ | !8 | ||
+ | !9 | ||
+ | !A(10) | ||
+ | !B(11) | ||
+ | !C(12) | ||
+ | !D(13) | ||
+ | !E(14) | ||
+ | !F(15) | ||
+ | |- | ||
+ | |二进制 | ||
+ | |0000 | ||
+ | |0001 | ||
+ | |0010 | ||
+ | |0011 | ||
+ | |0100 | ||
+ | |0101 | ||
+ | |0110 | ||
+ | |0111 | ||
+ | |1000 | ||
+ | |1001 | ||
+ | |1010 | ||
+ | |1011 | ||
+ | |1100 | ||
+ | |1101 | ||
+ | |1110 | ||
+ | |1111 | ||
+ | |} | ||
+ | '''<big>二进制转八进制,按 4 位一组进行转换,不足 4 位在左侧补0。</big>''' | ||
+ | |||
+ | |||
+ | 10001110(B)转十六进制: | ||
+ | {| class="wikitable" | ||
+ | |+ | ||
+ | !1000 | ||
+ | !1110 | ||
+ | |- | ||
+ | |8 | ||
+ | |E | ||
+ | |} |
2024年3月12日 (二) 15:09的最新版本
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。
10001110(B)转八进制:
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)
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A(10) | B(11) | C(12) | D(13) | E(14) | F(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
二进制转八进制,按 4 位一组进行转换,不足 4 位在左侧补0。
10001110(B)转十六进制:
1000 | 1110 |
---|---|
8 | E |