二进制与十进制之间的转换可以通过以下方法实现,具体分为整数和小数部分:
一、二进制转十进制
从右往左依次计算每一位的值,公式为:
$$text{十进制} = sum_{i=0}^{n} b_i times 2^i$$
其中,$b_i$为二进制位(0或1),$n$为位数减1。 *示例*:将1011₂转换为十进制:
$$1 times 2^3 + 0 times 2^2 + 1 times 2^1 + 1 times 2^0 = 8 + 0 + 2 + 1 = 11_{10}$$
分段处理(适用于长二进制数)
将32位二进制按每8位分割为4段,逐段转换为十进制(0-255),再合并。 *示例*:将11000000.10101000.00000001.00000001转换为十进制:
$$11000000 rightarrow 192$$
$$10101000 rightarrow 168$$
$$00000001 rightarrow 1$$
$$00000001 rightarrow 1$$
合并结果为:192.168.1.1
二、十进制转二进制
整数部分(除2取余法)
不断将十进制数除以2,记录余数,将余数从低位到高位排列。 *示例*:将37转换为二进制:
$$37 div 2 = 18 text{余}1$$
$$18 div 2 = 9 text{余}0$$
$$9 div 2 = 4 text{余}1$$
$$4 div 2 = 2 text{余}0$$
$$2 div 2 = 1 text{余}0$$
$$1 div 2 = 0 text{余}1$$
结果为:100101₂
小数部分(乘2取整法)
将十进制小数不断乘以2,取整数部分,顺序排列。 *示例*:将0.75转换为二进制:
$$0.75 times 2 = 1.5 rightarrow 1$$
$$0.5 times 2 = 1.0 rightarrow 1$$
结果为:0.11₂
三、注意事项
补零操作: 在计算机中,通常将二进制数填充到固定位数(如32位或64位),不足时补零。 工具辅助
通过以上方法,可灵活实现二进制与十进制之间的转换。