【软考】1 进制转换笔记

学习参考:

https://www.bilibili.com/video/BV1rc411t71D?p=2

  

一、十进制

数 74356.234 按十进制算法为 

整数部分: 7 位权为数4,4 位权数为3,3位权数为2,5 位权数为1,6位权数为0

小数部分:2 位权数为 -1,3 位权数为 -2,4位权数 -3

进制为10,公式是 进制N的位权数次方所得

整数部分则值为 7 * 104 + 4 * 103 + 3 * 102 + 5 * 101 + 6 * 100 = 74356

小数部分则值为 2 * 10-1 + 3 * 10-2 + 4 * 10-3 = 0.234

 

二、进制迭代 N进制 -> 十进制

位权数的整数部分为N,小数部分为M,进制为R,位权占位值为K,可以得出任意进制转换为十进制的公式

整数部分 K * RN + K * R(N-1) + K * R(N-2) + ... + K * R0

小数部分 K * R-1 + K * R-2 .... + K * R-M

 

二进制样例:

二进制数 100010101.001 转换为十进制

整数部分 1 * 28 + 1 * 24 + 1 * 22 + 1 * 20 = 256 + 16 + 4 + 1 = 277 (0占位所得值还是0,忽略此部分)

小数部分 1 * 2-3 = 0.125

合并为 277.125

 

十六进制样例:

十六进制数 AE86.05 转换为十进制

整数部分 (A) 10 * 163 + (E)14 * 162 + 8 * 161 + 6 * 160 = 40960 + 3584 + 128 + 6 = 44,678

小数部分 5 * 16-2 = 5 * 0.00390625 = 0.01953125

 合并为 44678.01953125

三、常用进制数值表

次方值 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4
2次方 2 ^ 12 2 ^ 11 2 ^ 10 2 ^ 9 2 ^ 8 2 ^ 7 2 ^ 6 2 ^ 5 2 ^ 4 2 ^ 3 2 ^ 2 2 ^ 1 2 ^ 0 2 ^ -1 2 ^ -2 2 ^ -3 2 ^ -4
  4096 2048 1024 512 256 128 64 32 16 8 4 2 1 0.5 0.25 0.125 0.0625
8次方 8 ^ 12 8 ^ 11 8 ^ 10 8 ^ 9 8 ^ 8 8 ^ 7 8 ^ 6 8 ^ 5 8 ^ 4 8 ^ 3 8 ^ 2 8 ^ 1 8 ^ 0 8 ^ -1 8 ^ -2 8 ^ -3 8 ^ -4
  68719476736 8589934592 1073741824 134217728 16777216 2097152 262144 32768 4096 512 64 8 1 0.125 0.015625 0.001953125 0.000244141
16次方 16 ^ 12 16 ^ 11 16 ^ 10 16 ^ 9 16 ^ 8 16 ^ 7 16 ^ 6 16 ^ 5 16 ^ 4 16 ^ 3 16 ^ 2 16 ^ 1 16 ^ 0 16 ^ -1 16 ^ -2 16 ^ -3 16 ^ -4
  2.81475E+14 1.75922E+13 1.09951E+12 68719476736 4294967296 268435456 16777216 1048576 65536 4096 256 16 1 0.0625 0.00390625 0.000244141 1.52588E-05

 

四、十进制到任意进制的转换

1、十进制到二进制(短除法)

将 86 变为二进制表示

用 86 / 2 = 43 余数 0,

43 / 2  = 21 余数 1,

21 / 2 = 10 余数 1,

10 / 2 = 5 余数 0,

5 / 2 = 2 余数 1,

2 / 2 = 1 余数 0,

1 / 2 = 0 余数 1

从最后余数向前计数,1010110

 

2、二进制到十六进制

我们可以发现 二进制一个4位值就可以表示十六进制的1位值

起始 0000 对应十六进制的0,结束 1111 对应十六进制的F

所以一个二进制值,可以通过补位的方式来转换为十六进制

 

例如: 10111110.0111 转换

整数部分:10111110 = [ 1011 ] 和 [ 1110 ]

1011 = 1 * 2^3 +  1 * 2^1 + 1 = 11 转换为十六进制为 B

1110 = 1 * 2^3 + 1 * 2^2 + 1 * 2^1 = 14 转换为十六进制为 E

小数部分:0111

0111 = 1 * 2^2 + 1 * 2^1 + 1 =  7

合并为 BE.7

 

3、同理二进制到八进制

二进制的三位值可匹配八进制的一位值, 同理可得四进制就是匹配二进制的二位值

还是用 10111110.0111 转换

整数部分:10111110 = [ 010 ]  [ 111 ]  [ 110 ]

010 = 1 * 2^1 = 2

111 = 1 * 2^2 + 1 * 2^1 + 1 = 7

110 = 1 * 2^2 + 1 * 2^1 = 6

小数部分:0111 = [ 011 ] [ 100 ]

011 = 1 * 2^1 + 1 * 2^0 = 3

100 = 1 * 2^2 = 4

 合并为 276.34

 

posted @ 2024-09-17 15:54  emdzz  阅读(40)  评论(0编辑  收藏  举报