二进制算法公式主要涉及数制转换、运算规则及位操作,具体如下:
一、二进制转十进制公式
二进制数 (abcd.efg(2)) 转换为十进制数的通用公式为:
[
begin{aligned}
&d times 2^0 + c times 2^1 + b times 2^2 + a times 2^3
&+ e times 2^{-1} + f times 2^{-2} + g times 2^{-3}
end{aligned}
]
例如:(1101.01(2) = 1 times 2^3 + 1 times 2^2 + 0 times 2^1 + 1 times 2^0 + 0 times 2^{-1} + 1 times 2^{-2} = 13.25) 。
二、二进制基本运算规则
加法 - 规则:0+0=0,0+1=1,1+0=1,1+1=10(进位)
- 示例:(1010_2 + 1011_2 = 10100_2) 。
减法
- 规则:0-0=0,1-0=1,1-1=0;借位时,上一位1视为2(即 (10_2))
- 示例:(1010_2 - 1001_2 = 0001_2) 。
乘法
- 规则:0×0=0,0×1=0,1×0=0,1×1=1
- 示例:(1101_2 times 101_2 = 111111_2) 。
除法
- 规则:0÷1=0,1÷1=1;0÷0无意义,1÷0无意义
- 示例:(1010_2 ÷ 10_2 = 101_2) 。
三、位操作公式
右移操作
- 公式:(j >> i = j / 2^i)(仅适用于无符号数)
- 示例:(1010_2 >> 1 = 101_2) 。
左移操作
- 公式:(j << i = j times 2^i)
- 示例:(1010_2 << 1 = 10100_2) 。
四、逻辑运算公式
或运算:
逢1得1
- 示例:(1010_2 lor 1100_2 = 1110_2) 。
与运算:
逢0得0
- 示例:(1010_2 land 1100_2 = 1000_2) 。
非运算:
各位取反
- 示例:(overline{1010}_2 = 0101_2) 。
以上公式覆盖了二进制转换、基础运算及位操作的核心规则,适用于不同场景下的计算需求。