尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
数据表示与运算
数据表示与运算核心目标掌握计算机如何用二进制表示各种数据整数、小数、字符以及ALU如何进行算术和逻辑运算。一、为什么计算机使用二进制核心原因二进制最简单、最可靠、最物理可实现。原因解释物理实现简单电路只需两种状态高电平(1) / 低电平(0)可用电压、电流、磁化方向表示运算规则简单二进制加法只有4种组合比十进制简单得多抗干扰能力强两种状态区分度大即使信号有一定衰减也能正确识别逻辑门实现方便与布尔代数完美对应真/假 1/0关键认识计算机内部所有数据——数字、文字、图像、音频、视频——本质上都是0和1的序列。二、进制转换1. 常见进制进制前缀/后缀示例应用场景二进制0b/B0b1010计算机内部八进制0/O017Unix文件权限十进制无 /D13人类日常十六进制0x/H0xFF内存地址、颜色编码2. R进制 ↔ 十进制R进制 → 十进制按权展开求和(1011.01)₂ 1×2³ 0×2² 1×2¹ 1×2⁰ 0×2⁻¹ 1×2⁻² 8 0 2 1 0 0.25 11.25十进制 → R进制整数部分除R取余倒序小数部分乘R取整正序将 13.625 转为二进制 整数部分13 ÷ 2 6 余 1 6 ÷ 2 3 余 0 3 ÷ 2 1 余 1 1 ÷ 2 0 余 1 → 倒序1101 小数部分0.625 × 2 1.25 → 取整 1 0.25 × 2 0.5 → 取整 0 0.5 × 2 1.0 → 取整 1 → 正序101 结果(13.625)₁₀ (1101.101)₂⚠️注意有些小数无法精确转换如0.1会在有限位数后截断导致浮点数精度问题。3. 二进制 ↔ 八进制/十六进制二进制→八进制每3位一组整数左补零小数右补零二进制→十六进制每4位一组(110101110.101)₂ → 八进制110 101 110 . 101 → (656.5)₈ → 十六进制0001 1010 1110 . 1010 → (1AE.A)₁₆三、定点数的表示定点数小数点位置固定。分为定点整数和定点小数。1. 真值与机器数真值实际数值带正负号如 13、-7.5机器数计算机中存储的二进制表示用符号位表示正负2. 无符号数所有位都表示数值没有符号位8位无符号数范围0 ~ 2550 ~ 2⁸-1n位无符号数范围0 ~ 2ⁿ-13. 有符号数的表示方法原码Sign-Magnitude最高位为符号位0正1负其余为数值位例5 0,0000101-5 1,0000101缺点零有两种表示0和-0加减运算需要额外判断符号反码One’s Complement正数与原码相同负数符号位不变数值位按位取反例-5 1,1111010缺点零仍有两种表示运算时需处理循环进位补码Two’s Complement⭐⭐⭐最重要、最常用现代计算机中整数统一使用补码表示和运算。正数与原码相同负数反码 1或模 - 真值例-5 的补码原码1,0000101→ 反码1,1111010→ 补码1,1111011优点零唯一表示加减法统一符号位参与运算无需单独处理补码求法速记方法1原码 → 反码除符号位取反 → 1 方法2从右往左找到第一个1它左边所有位取反符号位除外 方法3模运算2ⁿ - |真值|移码Excess-N / Offset Binary用于浮点数的阶码表示定义移码 真值 偏移量通常为 2ⁿ⁻¹特点便于比较大小与无符号数的顺序一致例8位移码偏移量1285 10000101即12851334. 三种表示法的对比真值原码反码补码50,00001010,00001010,0000101-51,00001011,11110101,111101100,00000000,00000000,0000000-01,00000001,11111110,0000000与0相同✓5. 定点数的范围n位整数1位符号 n-1位数值原码/反码-(2ⁿ⁻¹-1) ~ (2ⁿ⁻¹-1)补码-2ⁿ⁻¹ ~ (2ⁿ⁻¹-1)无符号0 ~ 2ⁿ-18位举例补码-128 ~ 127原码-127 ~ 127无符号0 ~ 255补码可以多表示一个负数因为零唯一所以-128的补码是10000000。四、定点数的运算1. 移位运算移位类型操作符号位空位填充用途逻辑左移整体左移参与右补0无符号数×2逻辑右移整体右移参与左补0无符号数÷2算术左移整体左移不变右补0有符号数×2算术右移整体右移不变左补符号位有符号数÷2⚠️算术左移注意若符号位改变则发生溢出2. 加减运算补码加减法⭐⭐⭐核心公式[A B]补 [A]补 [B]补 mod 2ⁿ [A - B]补 [A]补 [-B]补 [A]补 [B]补的变补 mod 2ⁿ减法变加法减去一个数 加上它的相反数的补码。这样硬件只需实现加法器溢出判断单符号位两个正数相加得负或两个负数相加得正 → 溢出双符号位运算结果的两个符号位不同 → 溢出01正溢10负溢进位判断最高数值位进位 ⊕ 符号位进位 1 → 溢出3. 乘法运算原码乘法符号位单独处理异或数值部分做绝对值乘法类似十进制竖式乘法累加移位补码乘法Booth算法⭐直接处理补码无需先转原码核心思想利用相邻位的变化来决定加/减/不移位适合硬件实现高效乘法溢出n位数乘n位数结果可能2n位若只保留n位高位丢失 → 溢出4. 除法运算原码除法符号位单独处理数值做绝对值除法补码除法加减交替法直接处理补码核心根据余数符号决定加除数还是减除数5. 标志位条件码运算结果会设置标志位供条件判断使用标志位名称含义ZF零标志结果全为0SF符号标志结果最高位补码即符号位CF进位/借位标志无符号数运算溢出OF溢出标志有符号数运算溢出PF奇偶标志结果低8位中1的个数为偶数AF辅助进位低4位向高4位进位五、浮点数的表示IEEE 754标准⭐⭐⭐ 浮点数 科学计数法的二进制版N (-1)ˢ × 1.M × 2ᴱ⁻¹²⁷1. 浮点数的格式┌───┬──────────┬──────────────────────────────┐ │ S │ E │ M (尾数/有效数) │ │ 1位│ 指数位 │ 尾数位 │ └───┴──────────┴──────────────────────────────┘精度总位数符号位指数位尾数位偏移量单精度float321823127双精度double641115210232. 规格化表示尾数最高位恒为1隐含所以实际精度比位数多1单精度实际精度24位双精度实际精度53位规格化范围1 ≤ |M| 23. 特殊值指数(E)尾数(M)含义全0全0±0全0非0非规格化数非常小的数1~254任意规格化数全1全0±∞正负无穷全1非0NaN非数字4. 浮点数运算步骤对阶将指数较小的数调整为与较大的数相同尾数右移尾数运算加减规格化确保尾数在 [1, 2) 范围内舍入按规则截断或进位溢出判断阶码是否超出范围⚠️经典陷阱0.1 0.2 ≠ 0.3在浮点数中因为0.1无法精确表示为二进制浮点数六、字符与字符串的编码1. ASCII编码7位编码128个字符0~127包括控制字符0~31、数字、字母、标点扩展ASCII8位256个字符含欧洲语言符号2. Unicode统一字符编码覆盖全球所有语言UTF-8变长编码1~4字节兼容ASCII互联网主流UTF-16变长编码2或4字节Java/C#内部使用UTF-32定长4字节3. 汉字的表示GB23126763个汉字双字节GBK21003个汉字向下兼容GB2312GB1803027484个汉字兼容GBKUnicode统一编码CJK统一汉字4. 字符串的存储C语言以\0结尾的字符数组其他方式长度前缀 字符数组大端/小端多字节字符在内存中的字节顺序5. 大端 vs 小端 ⭐方式含义举例0x12345678大端Big-Endian高位字节存放在低地址12 34 56 78人类阅读习惯小端Little-Endian低位字节存放在低地址78 56 34 12x86架构记忆法大端 大端在前高位在前小端 小端在前低位在前。x86 CPU是小端网络传输通常大端。七、校验码1. 奇偶校验码在数据后添加1位校验位使1的个数为奇数奇校验或偶数偶校验只能检测奇数个位错误不能纠错2. 海明码Hamming Code可检测并纠正1位错误核心在2的幂次位置1,2,4,8…放置校验位校验位覆盖特定位置的数据位若需检测d位错、纠正c位错需满足2ʳ ≥ d c 1r为校验位位数3. 循环冗余校验CRC⭐用于数据传输和存储的检错将数据视为多项式除以生成多项式余数作为校验码检错能力强能检测多位错误和突发错误硬件实现简单移位寄存器异或门八、重点回顾重点一句话总结进制转换整数除R取余小数乘R取整二-八进制3位一组二-十六进制4位一组原码符号位数值位零不唯一加减复杂反码负数数值取反零不唯一需循环进位补码负数反码1零唯一加减统一符号位参与运算移码真值偏移量用于浮点阶码便于比较浮点数IEEE 754符号位 阶码 尾数注意规格化和特殊值大小端大端高位在前网络小端低位在前x86校验码奇偶校验检错、海明码纠错、CRC强检错下章预告我们将探索计算机的记忆系统——存储器层次结构。从高速昂贵的寄存器到海量便宜的磁盘了解Cache如何让你的程序飞起来
RELATED

相关推荐

跨境电商数字人平台怎么选?国内3类卖家可闭眼对号入座

跨境电商数字人平台怎么选?国内3类卖家可闭眼对号入座

做跨境的老板问得最多的问题之一:"数字人平台这么多,我该用哪个?"没有标准答案,因为跨境卖家的需求差异极大。有的是单店测品,有的是品牌出海,有的是代运营团队管几十个店铺。选错了要么功能不够…

📅 2026/8/22 15:41:44
AI网文写作实验笔记(四):防幻觉,只有“抽象规则+自检“这一招管用

AI网文写作实验笔记(四):防幻觉,只有“抽象规则+自检“这一招管用

文章目录一、 承接上一篇二、 实验设计:高压场景与严格等长控制三、 错误是怎么数出来的(检测方法)四、 先交代:这次实验能测出多大的差异五、 光往prompt里加规则:三种常见做法都没测出效果1. "prompt写得越长效…

📅 2026/8/22 15:41:45
NI Nigel™ AI × LabVIEW 2026 Q1|更快上手、更高效的图形化测试开发

NI Nigel™ AI × LabVIEW 2026 Q1|更快上手、更高效的图形化测试开发

有四个主要功能:与codebuddy一样:1.补全代码2.搜索出与现有工程最接近的函数--补全部分程序相当于;3.搜索哪个不会用的函数;4.协助分析程序;

📅 2026/9/20 13:54:14
MORE NEWS

更多资讯

📰

Jira替代方案选型指南:Gitee等国产研发管理工具对比与落地实践

1. 研发管理工具选型的底层逻辑与市场格局 1.1 为什么“替代 Jira”这件事突然变得紧迫 做研发管理的朋友这两年应该都有一个明显感受:团队里讨论“要不要换掉 Jira”的频率越来越高。原因其实不复杂,我把它拆成三层来看。 第一层是 成本与合规 。Ji…

📰

formily-react ObjectField 组件完全指南:动态对象表单的 ViewModel 桥接与属性增删实战

前端UI组件 【免费下载链接】formily 📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目地址: https://gitcode.com/gh_mirrors…

📰

iOS开发工具选型指南:Xcode、AppCode等五款工具对比与实战

1. iOS开发工具选型的底层逻辑 1.1 为什么工具选择会直接影响开发效率 干了十来年iOS,我越来越觉得,工具选型这件事被很多新手严重低估了。大多数人刚入门的时候,脑子里只有一个概念——写iOS就得用Xcode,其他都是花里胡哨。但实…

📰

200张真实田间YOLO作物杂草数据集(v5-v11全兼容)

简介:本资源是面向农业AI与计算机视觉初学者的YOLO系列目标检测实战数据集,专为作物与杂草识别任务设计,适用于YOLOv5至YOLOv11等主流版本模型的训练、验证与测试。数据集包含200张高质量农田场景图像(JPG)&#xff0c…

📰

5G NR里DMRS到底怎么用?一文拆解时频结构、参数配置与性能影响

1. 5G NR里DMRS到底是什么,搞懂它才算入了物理层的门做5G协议栈或者物理层算法的人,几乎每天都要和DMRS打交道。不管是刚入行的应届生,还是从4G转过来的老工程师,第一次看38.211的时候基本都会被DMRS的时频结构绕晕。但说实话&…

📰

JSP健身房管理系统拆解:从数据库设计到部署排障全流程

1. 项目概述与系统定位 1.1 这套健身房管理系统到底能干什么 很多技术社区的朋友最近都在问:拿到一套JSP健身房管理系统的源码之后,到底该怎么看、怎么改、怎么把它跑起来?今天我就以这套典型的课程设计项目为样例,把整个分析过程…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬