导航菜单

数据的表示与运算

进制与编码(详细讲解)

1. 进制基础

  • 二进制:逢二进一,只有0和1。例如:1011₂ = 1×2³+0×2²+1×2¹+1×2⁰=11₁₀
  • 八进制:逢八进一,0~7。例如:157₈ = 1×8²+5×8¹+7×8⁰=111₁₀
  • 十六进制:0~9,A~F,逢十六进一。例如:2F₁₆ = 2×16¹+15×16⁰=47₁₀

2. 进制转换

  • 十进制转二进制:除2取余法,从下往上写余数。例如:156₁₀ → 10011100₂
  • 二进制转十进制:权展开法。例如:1101₂ = 1×2³+1×2²+0×2¹+1×2⁰=13₁₀
  • 二进制转八/十六进制:每3/4位一组,直接换算。

3. 常见编码

  • ASCII:7位或8位编码,A=65,a=97
  • Unicode/UTF-8:支持全球字符,1~4字节变长编码
  • BCD码:每4位二进制表示1位十进制数字,常用于金融

易错点

  • 进制转换顺序:除基取余法要从下往上写
  • 二进制分组时要从低位开始分组

定点数与浮点数(详细讲解)

1. 定点数

  • 原码:最高位为符号位,0正1负,其余为数值本身。例如:+7原码=00000111,-7原码=10000111
  • 反码:正数反码=原码,负数反码=符号位不变,其余位取反。例如:-7反码=11111000
  • 补码:正数补码=原码,负数补码=反码+1。例如:-7补码=11111001
  • 补码的优点:统一了加减法电路,只有一个0,简化硬件设计

2. 浮点数

  • IEEE 754单精度浮点数:32位=1符号+8阶码+23尾数
  • 表示方法:(-1)^S × 1.M × 2^(E-127)
  • 例:-5.75的IEEE 754表示
    -5.75₁₀ = -101.11₂ = -1.0111 × 2²
    符号位S=1,阶码E=127+2=129=10000001₂,尾数M=011100000...
    最终:1 10000001 01110000000000000000000

易错点

  • 补码溢出:注意符号位变化
  • 浮点数精度丢失:二进制无法精确表示所有小数

常用运算(详细讲解)

1. 补码加减法

  • 补码加减法:直接按位相加,溢出时丢弃最高位
  • 溢出判断:同号相加得异号即溢出
  • 例:8位补码,-35+20
    -35补码=11011101,20补码=00010100,相加=11110001,符号位1,结果为-15

2. 逻辑运算

  • 与(AND):两个都为1才为1
  • 或(OR):有一个为1就为1
  • 非(NOT):0变1,1变0
  • 异或(XOR):相同为0,不同为1

3. 乘除法与移位

  • 移位乘法:左移一位等于乘2,右移一位等于除2
  • 补码乘法:同样用补码规则

易错点

  • 补码加减法时,注意溢出判断和符号位变化
  • 逻辑运算与移位运算的优先级