428用二进制表示为 110101100,具体转换过程如下:
一、十进制转二进制(常规方法)
将428按权展开:
$$428 = 1 times 16^2 + 10 times 16^1 + 12 times 16^0$$
计算各部分:
$$1 times 256 = 256$$
$$10 times 16 = 160$$
$$12 times 1 = 12$$
总和:
$$256 + 160 + 12 = 428$$
二进制结果
将256、160、12分别转换为二进制:
$$256_{10} = 100000000_2$$
$$160_{10} = 10100000_2$$
$$12_{10} = 1100_2$$
拼接结果:
$$100000000_2 + 10100000_2 + 1100_2 = 110101100_2$$
二、补充说明
二进制位数: 上述方法得到的是 9位
8位补码表示:
1. 将428转换为二进制:10101100
2. 因为8位无符号数最大值为255,428需转换为负数:
$$428 - 256 = 172$$
$$172_{10} = 10101100_2$$
3. 按补码规则,符号位为1,数值位取反加1:
$$10101100 rightarrow 11010010 rightarrow 11010110$$
4. 最终8位补码表示为: 11010110(即原码10101100减1)。
三、注意事项
若直接将二进制数0000 0001 1010 1100(即428)强制转换为8位二进制,会导致高位丢弃,结果为 10101100,其十进制值为-84(需注意补码表示)。- 实际应用中需根据数据类型选择位数,例如8位无符号数无法表示负数,而8位有符号数采用补码表示范围为-128到127。