1. 十进制整数转二进制
-
假设十进制整数值为A,对应的二进制数为abcde (每一位的值非0即1)。
众所周知,二进制数换算为十进制的公式如下:
A = a * 24 + b * 23 + c * 22 + d * 21 + e * 20 -
所以咱们只要把a,b,c,d,e都取出来就能得到二进制的值。
又 A = 2 * (a * 23 + b * 22 + c * 21 + d * 20) + e
所以A除以2即能得到整数位(a * 23 + b * 22 + c * 21 + d * 20) 和余数e -
上边得到的整数(a * 23 + b * 22 + c * 21 + d * 20)除以2即能得到整数位(a * 22 + b * 21 + c * 20)和余数d。
-
以此类推,可得c,b,a
2. 十进制小数转二进制
- 假设十进制小数值是A(A<1),对应的二进制为0.abcde(二进制每一位的值非0即1)。
众所周知,二进制数换算为十进制的公式如下:
A = a * 2-1 + b * 2-2 + c * 2-3 + d * 2-4 + e * 2-5
二进制小数从高位到低位的每一位的权重分别为 1 2 \frac{1}{2} 21 1 4 \frac{1}{4} 41 1 8 \frac{1}{8} 81 1 16 \frac{1}{16} 161 1 32 \frac{1}{32}