一、信息编码与数据表示
1. 数值数据表示
机器数与真值
- 机器数:计算机中二进制表示的数(带符号位)。
- 真值:机器数对应的实际数值(如+5、-3)。
原码、反码、补码
- 原码:符号位(0正1负)+绝对值(例:+5 → 0 0000101,-5 → 1 0000101)。
- 反码:正数与原码相同;负数符号位不变,数值位取反(例:-5 → 1 1111010)。
- 补码:正数与原码相同;负数为反码+1(例:-5 → 1 1111011)。
- 补码是计算机表示有符号整数的标准方式(简化加减运算,避免±0歧义)。
非数值数据表示
字符编码
- ASCII码:7位编码(0-127),表示英文字符、控制符(如A→65,a→97)。
- Unicode:全球统一字符集(UTF-8、UTF-16等),兼容ASCII,支持多语言。
图像与声音编码
- 图像:像素点用二进制表示(如RGB三通道各占8位)。
- 声音:模拟信号通过采样、量化、编码转为数字信号(如WAV、MP3)。
常用数据单位
- 位(bit):最小单位,二进制0或1。
- 字节(Byte):8位(如1B = 8bit)。
- 字(Word):CPU一次处理的位数(如32位系统字长为4字节)。
二、数制及其转换方法
1. 常见数制
- 二进制(B):基数为2(0,1),计算机底层使用。
- 八进制(O):基数为8(0-7),二进制简写(每3位一组)。
- 十进制(D):基数为10(0-9),日常使用。
- 十六进制(H):基数为16(0-9, A-F),二进制简写(每4位一组)。
- 数制转换方法
-
其他进制 → 十进制 按权展开法:每位数值×基数的位权次方,求和。 例:
-
1011.01B = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ + 0×2⁻¹ + 1×2⁻² = 11.25D
-
A3FH = 10×16² + 3×16¹ + 15×16⁰ = 2623D
十进制 → 其他进制
- 整数部分:除基取余法(从下往上取余数)。
- 小数部分:乘基取整法(从上往下取整数)。
三、算术运算和逻辑运算
1. 算术运算
- 二进制加减法
- 加法:逢2进1。 例:1011B + 1101B = 11000B
- 减法:借1当2。 例:1101B - 1011B = 0010B
- 补码运算:减法转为加法(A - B = A + (-B的补码)。
溢出判断
- 符号位规则:两正数相加结果为负,或两负数相加结果为正,则溢出。
- 进位规则:最高位进位与符号位进位不同时溢出。
- 逻辑运算
基本逻辑运算
- 与(AND):全1则1,否则0(例:1100 & 1010 = 1000)。
- 或(OR):有1则1(例:1100 | 1010 = 1110)。
- 非(NOT):取反(例:~1100 = 0011)。
- 异或(XOR):相同为0,不同为1(例:1100 ^ 1010 = 0110)。
四、考公高频考点
- 补码的表示与运算(必考)。
- 二进制与十进制的快速转换(如2的幂次对应值:2¹⁰=1024)。
- 逻辑运算的优先级(NOT > AND > OR)。
- 溢出判断条件(符号位变化)。
- ASCII码与Unicode的区别(如汉字占2字节还是3字节)。
五、典型例题
-8
ym:10001000
fm:11110111
bm:11111000
yima: 01111000
8
ym:00001000
fm:00001000
bm:00001000
ym:00001000
-5
ym:10000101
fm:11111010
bm:11111011
yima: 0111011
笔记:
数值范围为 -127–+127
正数的原码=反码=补码=移码。第一个为符号位,1为负数,0为正数
负数的原码,反码=原码取反 补码=反码+1
移码对于负数,首先将其转换为补码,然后对符号位取反
补码–>移码 补码的符号位取反