二进制通过位运算实现不同信息的编码与解码,其核心原理基于逻辑运算和位权展开。以下是具体说明:
一、基本概念
位(bit) 二进制每位只能表示0或1,称为bit,8个bit组成1字节(8b)。
进制转换
- 十进制转二进制: 采用“除2取余法”或“位权展开法”。例如,将93转换为二进制: $$93_{10} = 01011101_2$$ 通过不断除以2取余数,再逆序排列余数得到。 - 二进制转十进制
$$01011101_2 = 2^6 + 2^4 + 2^3 + 2^2 + 1 = 93_{10}$$。
二、基本运算规则
算术运算 - 加法:
遵循“逢二进一”规则,例如:
$$1010_2 + 1011_2 = 10101_2$$
- 减法:采用模二加法(异或运算),例如:
$$1010_2 - 1011_2 = 1011_2$$
- 乘法:通过逐位相乘并相加,例如:
$$1010_2 times 1011_2 = 1101110_2$$
- 除法:通过不断除以2取余数,逆序排列余数,例如:
$$1101_2 div 2 = 110_2 text{ 余 } 1$$
$$110_2 div 2 = 55_2 text{ 余 } 0$$
$$55_2 div 2 = 27_2 text{ 余 } 1$$
$$27_2 div 2 = 13_2 text{ 余 } 1$$
$$13_2 div 2 = 6_2 text{ 余 } 1$$
$$6_2 div 2 = 3_2 text{ 余 } 0$$
$$3_2 div 2 = 1_2 text{ 余 } 1$$
$$1_2 div 2 = 0_2 text{ 余 } 1$$
最终结果为:
$$1101_2 div 2 = 1101_2 text{ 余 } 1$$
逻辑运算 - 与运算(AND):
全1为1,其余为0,例如:
$$1010_2 land 1100_2 = 1000_2$$
- 或运算(OR):全0为0,其余为1,例如:
$$1010_2 lor 1100_2 = 1110_2$$
- 异或运算(XOR):相同为0,不同为1,例如:
$$1010_2 oplus 1100_2 = 0110_2$$
- 非运算(NOT):0变1,1变0,例如:
$$neg 1010_2 = 0101_2$$
三、信息编码示例
字符编码 - 常见的有ASCII码和Unicode码,例如:
- 'A'的ASCII码为65(二进制01000001),'a'为97(01100001)。
数据存储
- 计算机以补码形式存储有符号数,例如:
- +56表示为0011 0110,-56表示为1100 1002。
四、应用场景
计算机运算:
所有数据处理均基于二进制运算