二进制代码的编码方式主要分为以下四类,涵盖符号表示、数值转换及计算机内部存储规则:
一、符号位表示法
原码 最直观的编码方式,符号位(最高位)用0表示正数,1表示负数,其余位表示数值。例如:
- 正数:`01010100`
- 负数:`11010100`
反码
正数与原码相同,负数符号位不变,其余位取反。例如:
- 正数:`01010100`
- 负数:`10101011`
补码
反码加1,解决了原码和反码中`+0`和`-0`的冗余问题。例如:
- 正数:`01010100`
- 负数:`10101011`(`10101010`取反后加1)
二、数值转换规则
二进制转十进制: 按位权展开求和,公式为: $$ sum_{i=0}^{n-1} a_i times 2^i $$ 其中$a_i$为二进制位,$n$为位数。 三、计算机内部编码方式固定长度编码
每个字符或数值占用固定位数(如8位、16位),适用于字符集较小的场景(如ASCII)。
可变长度编码
根据字符频率分配位数,常见于文件压缩和数据库存储,如UTF-8。
四、扩展应用
位运算: 通过与、或、异或等操作符直接处理二进制数据,实现逻辑判断和算术运算。 位掩码
总结:二进制编码需根据应用场景选择符号表示法和长度规则,计算机内部通过补码统一处理负数,并借助位运算实现高效操作。