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

计算机组成原理(七):二进制编码

二进制编码

二进制系统

  • 二进制由两个数字 01 组成,适合数字电路中的高电平(1)和低电平(0)表示。
  • 在计算机内部,所有数据(如数字、文本、图像、声音等)最终都以二进制形式存储和处理。

编码的作用

  • 将信息(字符、数字、图像、信号等)转换为计算机可以识别的二进制格式。
  • 编码的规则决定了如何解码二进制数据以恢复原始信息。

二进制编码的类型

数值编码

  • 用二进制表示数字。
  • 无符号整数 :直接用二进制表示正整数。
    • 示例:5 用二进制表示为 101
  • 有符号整数 :用最高位表示符号(0 表示正,1 表示负)。
    • 示例:-5 用补码表示为 11111011(8 位)。
  • 浮点数 :使用 IEEE 754 标准表示小数,分为符号位、指数位和尾数位。
    • 示例:3.14 的二进制形式为 01000000010010001111010111000011

字符编码

  • 用二进制表示字符。
  • ASCII :使用 7 位二进制编码常见字符。
    • 示例:字符 A 的 ASCII 编码为 01000001
  • Unicode/UTF-8 :扩展支持全球语言字符。
    • 示例: 的 UTF-8 编码为 11100100 10111000 10101101

图像编码

  • 将图像像素值用二进制表示。
  • 位图(BMP):直接用二进制存储每个像素的颜色值。
    • 示例:黑白图像中黑色为 0,白色为 1
  • 压缩格式:如 JPEG、PNG,使用压缩算法编码图像以减少存储空间。

音频编码

  • 将声音波形采样后用二进制存储。
  • 示例:MP3、WAV 格式音频使用二进制编码音频数据。

网络编码

  • 网络通信协议将数据包编码为二进制格式。
  • 示例:HTTP 请求或 TCP 数据包用二进制传输。

其他编码

  • BCD(Binary Coded Decimal):用二进制表示十进制数字,每个十进制位用 4 位二进制表示。
    • 示例:数字 59 的 BCD 表示为 0101 1001
  • 格雷码(Gray Code):编码方式使相邻数字只有一位不同,常用于错误检测。

二进制编码的应用

1. 数据存储

  • 计算机存储设备(硬盘、SSD、内存)以二进制形式存储数据。
  • 文本文件用字符编码(如 UTF-8)保存,图像、音频等文件用特定格式编码。

2. 数据传输

  • 网络通信中,所有数据以二进制格式打包并传输。
    • 通信协议:如 TCP/IP 协议中使用二进制传输 IP 地址、端口号等。
    • 文件传输:如 HTTP 协议中发送网页内容的二进制编码。

3. 多媒体处理

  • 视频和音频文件(如 MP4、MP3)用二进制编码压缩存储,播放时解码为原始格式。
  • 图像处理和显示设备(如相机、屏幕)通过二进制编码生成和显示图片。

4. 控制与嵌入式系统

  • 嵌入式设备(如微控制器、单片机)通过二进制控制硬件。
    • 指令以二进制形式传递给处理器。
    • 传感器数据用二进制编码采集和处理。

5. 加密与安全

  • 数据加密技术(如 AES、RSA)使用二进制操作实现密钥生成和数据加密。
  • 哈希算法(如 SHA-256)将数据编码为固定长度的二进制散列值。

6. 人工智能与机器学习

  • 模型参数、输入数据(如图片像素、文本)都以二进制编码表示。
  • 神经网络权重存储为二进制数据,用于训练和推理。

7. 条形码与二维码

  • 条形码和二维码用二进制编码信息。
    • 条形码:黑白条纹用二进制编码数字。
    • 二维码:二维黑白矩阵用二进制编码文本或 URL。

二进制编码的优点与局限

优点

  1. 简单高效:二进制适合硬件实现(如电路的高低电平)。
  2. 通用性强:可以编码任意类型的数据(字符、图像、音频等)。
  3. 便于存储与传输:所有数字设备都以二进制形式处理数据。

局限

  1. 可读性差:二进制表示直观性低,不易被人类理解。
  2. 冗余性:某些编码方式(如 ASCII)可能浪费空间。
  3. 复杂性:特定数据(如图像)编码和解码过程可能较复杂。

二进制编码的应用

示例 1:文本编码

  • 字符 Hello转为二进制:
    • ASCII:H -> 01001000, e -> 01100101, l -> 01101100, o -> 01101111

示例 2:图片编码

  • 一张 2x2 的黑白图片:

    1 0
    0 1
    

    编码为二进制:1001

示例 3:网络数据包

  • 一个简单的 TCP 数据包:
    • 源端口号:8080 -> 00011111 10010000(16 位)
    • 目标端口号:80 -> 00000000 01010000(16 位)
http://www.lryc.cn/news/504318.html

相关文章:

  • 【GitHub分享】you-get项目
  • 论文概览 |《Sustainable Cities and Society》2024.12 Vol.116
  • 解决node.js的req.body为空的问题
  • Mysql学习笔记之安装
  • 将PDF流使用 canvas 绘制然后转为图片展示在页面上(二)
  • 【深度学习】 零基础介绍卷积神经网络(CNN)
  • Coze概述
  • 康佳Android面试题及参考答案(多张原理图)
  • 2022 年 3 月青少年软编等考 C 语言四级真题解析
  • 关于24年408真题的疑问
  • 【容器】k8s学习笔记基础部分(三万字超详细)
  • dayjs(2kb)和momentjs(70kb)关系详述及项目中如何选择讲解
  • 【Python网络爬虫笔记】11- Xpath精准定位元素
  • 6.python列表
  • Android中bindService和startService启动服务有何区别
  • 超牛免费 机械臂模型、工业机器人模型下载网站集合
  • 引领未来的变革:15种前沿RAG技术及其应用探索
  • Scala泛型应用场景
  • AI监控赋能健身馆与游泳馆全方位守护,提升安全效率
  • Avalonia实战实例二:添加三种状态的Svg图片按钮
  • 基于注意力的几何感知的深度学习对接模型 GAABind - 评测
  • arcGIS使用笔记(无人机tif合并、导出、去除黑边、重采样)
  • Color-Light-Control-and-Four-Way-Responder based on STM32F103C8T6
  • openGauss开源数据库实战二十八
  • Vue3之响应式系统详解
  • Kafka 的配置文件
  • 【系统思辨】分散注意
  • 单幅图像合成 360° 3D 场景的新方法:PanoDreamer,可同时生成全景图像和相应的深度信息。
  • Python课设-谁为影狂-豆瓣数据【数据获取与预处理课设】
  • 关卡选择与布局器