数学与软件工程
二进制
高位和低位
描述二进制数位位置和权重的基本概念,对理解计算机数据表示和位运算至关重要;
一、基本定义
- 低位(LSB, Least Significant Bit):指二进制数中最右边的位,其权值最小(2⁰=1)。在字节中,低位通常指第0位。
- 高位(MSB, Most Significant Bit):指二进制数中最左边的位,其权值最大(2ⁿ⁻¹,n为位数)。在字节中,高位通常指第7位。
二、权值与示例
在二进制系统中,位的位置决定其权重,从右向左依次递增:
- 低位:权值为2⁰ = 1
- 次低位:权值为2¹ = 2
- 次高位:权值为2⁶ = 64
- 高位:权值为2⁷ = 128(8位二进制数中)
三、在编程中的应用
1. 位运算
- 提取低位:使用位与运算
x & 1可获取最低位值 - 提取高位:使用右移运算
x >> 7(8位数)可获取最高位值 - 设置位值:通过位或运算设置特定位为1,如
x | 0b10000000设置最高位
2. 字节顺序(Endianness)
- 大端模式(Big-Endian):高位字节存储在低地址,低位字节存储在高地址
- 小端模式(Little-Endian):低位字节存储在低地址,高位字节存储在高地址
例如,16位数0x1234在内存中的存储:
- 大端模式:低地址→0x12、高地址→0x34
- 小端模式:低地址→0x34、高地址→0x12
3.位移操作
- 左移(<<):将所有位向左移动,低位补0,相当于乘以2ⁿ
- 右移(>>):将所有位向右移动,高位补符号位,相当于除以2ⁿ
4.补码表示
在计算机中,负数通常用补码表示:
- 正数5:00000101
- 负数-5:先取反11111010,再加1得11111011
为什么2的幂次方数据能实现均匀分布
核心原因在于其二进制特性使取模运算可转化为位运算,确保哈希值的每一位都能参与索引计算,避免数据倾斜。
一、位运算与取模运算的等价性
当容量为2的幂次方(如8、16、32)时,取模运算可完全等价于位运算:
hash % 8等价于hash & 7(7的二进制为0111)hash % 16等价于hash & 15(15的二进制为01111)- 一般形式:
hash % 2^n等价于hash & (2^n - 1)
这种等价性成立的关键在于:2的幂次方减1的二进制表示中所有低位都是1,这使得位运算能精确捕获哈希值的低位信息
浙公网安备 33010602011771号