数字系统与编码


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处理能力,是开发者的核心技能之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch】训练时跟OOM相关的提示信息

1. RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling cublasCreate(handle)

基于maven-jar-plugin打造一款自动识别主类的maven打包插件

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

多态的主要好处与不足

多态是面向对象编程的核心特性之一,它通过方法重写、接口实现等方式实现“同一操作作用于不同对象时产生不同行为”。以下是多态的主要好处与不足: 多态的好处 1. 提高代码灵活性和扩展性 开闭原则支持:新增子类时,无需修改现有…

excel解析图片pdf附件不怕

背景 工作中肯定会有导入excel还附带图片附件的下面是我解析的excel,支持图片、pdf、压缩文件实现 依次去解析excel,看看也没有附件,返回的格式是Map,key是第几行,value是附件list附件格式都被解析成pdf格式Reader.jav…

python爬虫 线程,进程,协程

0x00 线程 线程是一个执行单位,是在一个进程里面的,是共享进程里面的提供的内存等资源,使用多个线程时和使用多个进程相比,多个线程使用的内存等资源较少。进程像一座“房子”(独立资源),线程是…

ES|QL,知道吗,专为搜索而生 —— 推出评分和语义搜索

作者:来自 Elastic Ioana Tagirta 在 Elasticsearch 8.18 和 9.0 中,ES|QL 支持评分、语义搜索以及更多的 match 函数配置选项,还有一个新的 KQL 函数。 使用 ES|QL 搜索 在 Elasticsearch 8.18 和 9.0 中,ES|QL 增加了一系列新功…

MIT6.S081-lab4

MIT6.S081-lab4 注:本篇lab的前置知识在《MIT6.S081-lab3前置》 1. RISC-V assembly 第一个问题 Which registers contain arguments to functions? For example, which register holds 13 in main’s call to printf? 我们先来看看main干了什么: …

一文总结通信电路中LC谐振回路中各公式以及对深入解读品质因数Q

目录 前言 一、基本公式总结 1.并联谐振回路 2.串联谐振回路 二、浅谈品质因数 1.衡量谐振回路能量存储与能量损耗之比的无量纲参数,用于描述谐振电路的频率选择性 2.当受到振荡驱动力时,谐振腔的中心频率与其带宽的比值 3.为什么谐振时电容上的…

Linux:文件系统

一.认识硬件–磁盘 1. 物理结构 1.2 存储结构 ❓如何定位⼀个扇区呢? 可以先定位磁头(header)——》确定磁头要访问哪⼀个柱⾯(磁道)(cylinder)——》 定位⼀个扇区(sector)。 柱⾯(cylinder&#xff09…

数字孪生废气处理工艺流程

图扑数字孪生废气处理工艺流程系统。通过精准 3D 建模,对废气收集、预处理、净化、排放等全流程进行 1:1 数字化复刻,实时呈现设备运行参数、污染物浓度变化等关键数据。 借助图扑可视化界面,管理者可直观掌握废气处理各环节状态&#xff0c…

Scratch——第18课 列表接龙问题

在四级的考级中,接龙的题目虽然在CIE中只出现过两次,但是这类题目对字符串的知识点考察相对全面。 一、接龙游戏的判断方法 接龙的内容对应的字符数 ? 已接龙内容的字符数 满足条件>接龙内容的第一个字符数 ? 上一项接龙的最后一个字符 满足条件…

webgl入门实例-向量在图形学中的核心作用

在图形学中,向量是描述几何、光照、运动等核心概念的基础工具。以下是向量在图形学中的关键应用和深入解析: 1. 向量的核心作用 几何表示:描述点、方向、法线、切线等。空间变换:平移、旋转、缩放等操作依赖向量运算。光照计算&a…

Redis 是如何保证线程安全的?

Redis 是如何保证线程安全的? Redis 是一个高性能的键值数据库,广泛应用于缓存、消息队列、实时分析等场景。由于其性能优势,Redis 已经成为许多系统的核心组件之一。然而,很多开发者在使用 Redis 时,常常会问&#x…

Img2img-turbo 在2080Ti上的测试笔记

1. 介绍 [img2img-turbo]是[pytorch-CycleGAN-and-pix2pix]推荐的更新的图像变换的代码实现; 2. 配置信息 Conda环境名称:img2img-turbo 3. 问题描述 当前在我们尝试使用了官方推荐的训练命令在2080Ti上进行训练, 3.1 出现了 CUDA out …

代码随想录算法训练营第三十五天|416. 分割等和子集、698.划分为k个相等的子集、473.火柴拼正方形

今日题目 416. 分割等和子集 题目链接:416. 分割等和子集 - 力扣(LeetCode) 思考:本题要将数组分为两个子数组,且两个子数组和相等,因此首先可以想到的条件就是数组可分为两个,这要求数组元素数…

纯CSS实现自动滚动到底部

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>自动滚动到底部</title><style>*…

【新人系列】Golang 入门(十五):类型断言

✍ 个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4dd; 专栏地址&#xff1a;https://blog.csdn.net/newin2020/category_12898955.html &#x1f4e3; 专栏定位&#xff1a;为 0 基础刚入门 Golang 的小伙伴提供详细的讲解&#xff0c;也欢迎大佬们…

AI大模型发展现状与MCP协议诞生的技术演进

1. 大模型能力边界与用户痛点&#xff08;2023年&#xff09; 代表模型&#xff1a;GPT-4&#xff08;OpenAI&#xff09;、Claude 3&#xff08;Anthropic&#xff09;、通义千问&#xff08;阿里云&#xff09;等展现出强大的生成能力&#xff0c;但存在明显局限&#xff1a…

深入理解Linux中的线程控制:多线程编程的实战技巧

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; POSIX线程&#xff08;Pthreads&#xff09; 是一种在 POSIX 标准下定义的线程库&#xff0c;它为多线程编程提供了统一的接口&#xff0c;主要用于 UNIX 和类 UNIX 系统&#xff08;如 Linux、MacOS 和 BS…

(mac)Grafana监控系统之监控Linux的Redis

Grafana安装-CSDN博客 普罗米修斯Prometheus监控安装&#xff08;mac&#xff09;-CSDN博客 1.Redis_exporter安装 直接下载 wget https://github.com/oliver006/redis_exporter/releases/download/v1.0.3/redis_exporter-v1.0.3.linux-amd64.tar.gz 解压 tar -xvf redis_…