“软件设计师精讲 数据的表示 进制转换”的版本间的差异
| Jihongchang(讨论 | 贡献) | Jihongchang(讨论 | 贡献)  小 (Jihongchang移动页面软件设计师精讲 数据的表示至软件设计师精讲 数据的表示 进制转换,不留重定向) | ||
| (未显示同一用户的36个中间版本) | |||
| 第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 |