当前位置: 首页 > news >正文

数字系统与编码


1. 数字系统(Number Systems)

1.1 常见数字系统
系统基数符号集示例应用场景
二进制20, 11010计算机底层电路、数据存储
八进制80-717Unix文件权限(如chmod 755
十进制100-942日常计算
十六进制160-9, A-F0x1F内存地址、颜色编码(#RRGGBB)
1.2 进制转换方法
  • 其他进制 → 十进制:加权求和
    1010_2 = 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 = 10_{10}
    
  • 十进制 → 其他进制:短除法取余
    42_{10} \rightarrow 42÷2=21余0 → 21÷2=10余1 → ... → 101010_2
    
  • 二进制 ↔ 十六进制:4位分组转换
    1101\_0110_2 → D6_{16}
    

2. 数据编码(Data Encoding)

2.1 数值编码
编码类型表示方法范围(8位)特点
原码最高位为符号位(0正1负)-127 ~ +127零有+0-0两种表示
反码负数:符号位不变,其余位取反-127 ~ +127过渡方案,现较少使用
补码负数:反码+1-128 ~ +127现代计算机标准,消除零歧义
移码补码符号位取反-128 ~ +127用于浮点数阶码(如IEEE 754)

示例

  • -5的8位补码表示:
    原码:1000 0101 → 反码:1111 1010 → 补码:1111 1011
    
2.2 字符编码
标准覆盖范围存储方式局限性
ASCII英文、数字、控制字符(128个)1字节(7位)无法表示非拉丁字符
Unicode全球文字(如中文、emoji)UTF-8(变长1-4字节)兼容ASCII,互联网首选
GB2312简体中文(6763个汉字)2字节仅支持简体中文

UTF-8编码规则

  • 1字节:0xxxxxxx(兼容ASCII)
  • 2字节:110xxxxx 10xxxxxx
  • 3字节:1110xxxx 10xxxxxx 10xxxxxx
  • 4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

3. 高级编码技术

3.1 浮点数编码(IEEE 754)
\text{值} = (-1)^S × 1.M × 2^{E-127}
  • 32位单精度
    S(1位) | E(8位) | M(23位)
    
  • 示例-0.75的二进制表示:
    符号位S=1,0.75=1.1×2^{-1} → E=126(01111110), M=1000...0
    最终:1 01111110 10000000000000000000000
    
3.2 错误检测编码
  • 奇偶校验:附加1位使1的个数为奇/偶
    数据:1010 → 偶校验:1010_0(1的个数为偶数)
    
  • CRC循环冗余校验:多项式模2除法(用于网络传输)
  • 汉明码:可纠正单比特错误的纠错编码

4. 实际应用案例

4.1 计算机内存存储
  • 小端序(Little Endian):低位字节存储在低地址
    32位整数0x12345678在内存中的存储(地址递增方向):
    78 56 34 12
    
4.2 图像颜色编码
  • RGB24位色
    R(8位) | G(8位) | B(8位) → 如纯红色:0xFF0000
    
  • ARGB32位色:增加透明度通道(Alpha)
4.3 条形码与二维码
  • EAN-13条形码:13位数字(前导位+左右数据+校验位)
  • QR码:使用Reed-Solomon纠错编码,支持汉字(需UTF-8转换)

5. 关键问题与解决方案

Q1: 为何计算机使用补码表示负数?
  • 解决零的歧义:补码中+0-0表示相同(均为000...0
  • 简化运算电路:加法器无需区分正负数,统一处理(如5 + (-3)可直接相加)
Q2: UTF-8如何实现变长编码?
  • 前缀码设计:通过起始比特模式标识字节数(如110开头的必为2字节字符首字节)
  • 兼容性:ASCII字符(0-127)保持单字节不变

总结

数字系统与编码是计算机科学的基石,理解其原理对以下领域至关重要:

  • 硬件设计(如CPU算术单元)
  • 数据压缩(如哈夫曼编码)
  • 网络安全(如校验和验证)
  • 跨平台数据交换(如字符编码转换)

掌握进制转换、补码运算和Unicode处理能力,是开发者的核心技能之一。

相关文章:

  • 计算机组成原理笔记(十六)——4.1基本算术运算的实现
  • Java Streams 使用教程
  • 即梦AI与可灵AI视频生成功能对比分分析
  • AI与思维模型【70】——遗忘曲线
  • 从外网访问局域网服务器的方法+Linux文件和命令
  • App-Controller - 通过自然语言操控应用程序的智能框架
  • tigase源码学习杂记-组件化设计
  • 人工智能之矢量搜索报告
  • 如何轻松实现用户充值系统的API自动化测试
  • 【实战中提升自己】内网安全部署之端口隔离与MAC地址认证
  • Dify部署内网时遇到的代理问题及解决办法
  • 【C语言】char unsigned char signed char
  • python 字符串解析 struct.unpack_from(fmt, buffer, offset=0) ‘<? B I‘
  • 从零开始详细讲解 Boost.Asio
  • ZYNQ笔记(十):XADC (PS XDAC 接口)
  • 火箭姿态控制系统
  • HTML 如何改变字体颜色?深入解析与实践指南
  • 【题解-Acwing】790. 数的三次方根
  • HeavyKeeper 算法
  • Python类和对象一(十)
  • 中央民族乐团团长赵聪已任文旅部艺术司司长
  • “6+2”小复式追加票!松江购彩者擒大乐透1672万头奖
  • 第一集|《蛮好的人生》蛮好,《悬镜》挺玄
  • 人民日报读者点题·共同关注:花粉过敏增多,如何看待城市绿化“成长的烦恼”
  • 人民日报:当阅读成为“刚需”
  • 市民建议公交广播增加“请勿大声喧哗”提示,上海交通委回复