
面试高老师为您分享以下优质知识
二进制代码的编码方式主要分为以下四类,涵盖符号表示、数值转换及计算机内部存储规则:
一、符号位表示法
最直观的编码方式,符号位(最高位)用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。
四、扩展应用
位运算:
通过与、或、异或等操作符直接处理二进制数据,实现逻辑判断和算术运算。
位掩码:通过二进制掩码控制特定位的操作,如权限验证。
总结:二进制编码需根据应用场景选择符号表示法和长度规则,计算机内部通过补码统一处理负数,并借助位运算实现高效操作。