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

【计算机组成原理·信息】2数据①

1.数据如何表示?

使用一种“编码”方式,将人类世界的“真值”➡️计算机世界的“机器数”,这个过程就叫“表示”。

真值:人类习惯书写和理解的原始数值。它带有正负号、小数点。

例如:-5+10-3.75, +0.0-0.0

机器数:真值在计算机内部的二进制表示形式。就是一串由 0 和 1 组成的序列。

机器数的位数被称为机器字长。

例如,真值 -5 的某种机器数表示可能是 10000101(最高位1表示负)。

编码:将真值转换为机器数(或反之)的一套规则和标准。它是一座桥梁。解决了“符号”和“小数点”的数字化问题。

①无符号定点数编码:最直接的二进制规则,所有位都表示数值。

②有符号定点数编码:原码、反码、补码、移码。它们规定了符号位和数值位如何组合。

③浮点数编码:IEEE 754标准。它规定了如何把实数分解成符号、阶码、尾数三部分。

(除了数的编码,还有非数值编码:ASCII码(字符)、BCD码(十进制))

1.1.进位计数制

学习进位计数制是为了理解如何将“真值”➡️“机器数”。

1.1.1.r进制数

1.1.1.1.基数r

一种计数制中,每个数码位所用到的基本符号的个数,也就是一个位能有几位数字,称为基数r

r 符号

进制书写规范

r=2

二进制

(Binary)

0,1

下标法$(1011)_2$

字母后缀:1011B

r=8

八进制

(Octal)

0,1,2,3,4,5,6,7

下标法$(17)_8$

字母后缀:17O

r=10

十进制

(Decimal)

0,1,2,3,4,5,6,7,8,9

字母后缀:123D

r=16

十六进制

(Hexadecimal)

0,1,2,3,4,5,6,7,8,9,

A=10,B=11,C=12,D=13,E=14,F=15

下标法$(1F)_{16}$

字母后缀:1FH

前缀法(常见于程序代码)0x1F 或 0X1F

计算机采用二进制的原因

①可使用具有两个稳定状态的物理器件表示(高/低电平,电容充/放电)。

②0/1可对应逻辑假/真,便于实现逻辑运算。

③可使用逻辑门电路方便地实现算术运算。

💎练习题

为何使用八进制和十六进制:与二进制转换方便,便于程序员阅读和记录机器代码。

1.1.1.2.位权rⁿ

数码在不同位置上所代表的数值权重,即系数K应乘的幂次。

整数部分:从右向左,第i位(i0开始)的位权为$r^i$

小数部分:从左向右,第j位(j1开始)的位权为$r^{-j}$

1.1.1.3.数值计算公式

一个R进制数$K_nK_{n-1}...K_2K_1K_0.K_{-1}K_{-2}...K_{-m}$对应的十进制值$(K_n\times r^n)+(K_{n-1}\times r^{n-1})+...+(K_0\times r^0)+(K_{-1}\times r^{-1})+...+(K_{-m}\times r^{-m})$

1.1.2.数制转换

1.1.2.1.² ⁸ ¹⁶→¹⁰

方法:使用数值计算公式。

示例

二进制 → 十进制$(1011.01)_2 = 1\times 2^3 + 0\times 2^2 + 1\times 2^1 + 1\times 2^0 + 0\times 2^{-1} + 1\times 2^{-2} = (11.25)_{10}$

八进制 → 十进制$(5.4)_8 = 5\times 8^0 + 4\times 8^{-1} = 5 + 0.5 = (5.5)_{10}$

十六进制 → 十进制$(A.1)_{16} = 10\times 16^0 + 1\times 16^{-1} = 10 + 0.0625 = (10.0625)_{10}$


1.1.2.2.²⇄ ⁸ ¹⁶

方法:由于一位八进制数对应三位二进制数,一位十六进制数对应四位二进制数。

二进制 → 八/十六进制的方法是:①以小数点为界,向左、右分组。②八进制,每3位一组,不足补0;十六进制,每4位一组,不足补0。③将每组二进制数转换为对应的八、十六进制数。

八/十六进制 → 二进制的方法是:将每一位八、十六进制数,展开为对应的3位、4位二进制数即可。

示例

$(001\ 011\ 101.110)_2 \rightarrow (135.6)_8$

$(1011\ 1010.1101)_2 \rightarrow (BA.D)_{16}$

$(7.2)_8 \rightarrow (111.010)_2$

$(F.8)_{16} \rightarrow (1111.1000)_2$


1.1.2.3.¹⁰→² ⁸ ¹⁶

方法:整数部分采用除基取余法转换;小数部分采用乘基取整法转换。

①除基取余法:将十进制整数连续除以基数r,直到商为0

先得到的余数是低位,后得到的是高位。(先得到的写在小数点那一边)

②乘基取整法:将十进制小数连续乘以基数r,直到积为整数达到所需精度

先得到的整数部分是高位,后得到的是低位。(先得到的写在小数点那一边)

技巧(拼凑法):对于熟悉的数字,可用位权拼凑。

示例

$(260.75)_{10} = 256 + 4 + 0.5 + 0.25 = 2^8 + 2^2 + 2^{-1} + 2^{-2} = (100000100.11)_2$

$(533.125)_{10} = 512 + 16 + 4 + 1 + 0.125 = 2^9 + 2^4 + 2^2 + 2^0 + 2^{-3} = (1000010101.001)_2$

💎练习题

1.2.定点数表示

定点数表示:定点数的“真值”➡️“机器数”

注意:这里不能表示所有定点数,只能表示小数点固定在数值位后或小数点固定在符号位后的定点数。比如说广义上的定点数是包含9.7的,但是这里的“定点数表示”无法表示出9.7,如果要表示,需要把9.7转换为浮点数表示。


✅ 无符号定点数:用直接二进制表示(可视为原码)

✅ 有符号定点数现代计算机主要用补码,但原码、反码、移码都有其特定应用场景

1.2.1.无符号定点数

定义:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值

通常讨论无符号整数,几乎没有“无符号小数”的概念。

表示范围:若用n位二进制表示无符号数,其表示范围为0\sim 2^{n}-1,表示个数有2^{n}个。例如,8位无符号数,范围为 0 (0000 0000) 到 255 (1111 1111)。

(只有)无符号定点整数

1️⃣所有二进制位均为数值位,无符号位。默认符号为正。

2️⃣n位无符号整数范围:0\sim 2^{n}-1

3️⃣例如8位无符号整数的最小值为0000 0000 → 0;最大值为1111 1111 → 255。

💎练习题

1.2.2.有符号定点数

http://www.xdnf.cn/news/18998.html

相关文章:

  • 在 Go 项目的 DDD 分层架构中,Echo Web 框架及其 middleware 应该归属到哪一层?
  • LeetCode第二题知识点3 ----引用类型
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day15
  • OpenCV的轮廓检测
  • 神经语言学与脑科学启发的NLP深层分析:从统计拟合到机制理解的范式转变
  • 基于Spring Boot的短信平台平滑切换设计方案
  • 基于Matlab实现模糊综合评价程序
  • 使用 Java 替换和修改 PDF 文本的方法
  • c++标准模板库
  • 赋能你的应用:英超实时数据接入终极指南(API vs. WebSocket)
  • mongoDB学习(docker)
  • Bert学习笔记
  • HDFS 基本原理与操作流程
  • Python 【深度解析】线程与进程:操作系统中多任务的核心机制
  • 嵌入式第四十一天(数据库)
  • undefined和null
  • 【大模型14】Fine-tuning与大模型优化1
  • HunyuanVideo-Foley视频音效生成模型介绍与部署
  • 【完整源码+数据集+部署教程】胚胎发育阶段检测系统源码和数据集:改进yolo11-SCConv
  • Git 8 ,git 分支开发( 切换分支开发,并设置远程仓库默认分支 )
  • 机器视觉opencv教程(二):二值化、自适应二值化
  • 云计算学习笔记——逻辑卷管理、进程管理、用户提权RAID篇
  • 利用亮数据MCP服务器构建个性化学习情报官智能体
  • 第三章 Vue3 + Three.js 实战:用 OrbitControls 实现相机交互与 3D 立方体展示
  • 《应用密码学》——基础知识及协议结构模块(笔记)
  • 第2.1节:AI大模型之GPT系列(GPT-3、GPT-4、GPT-5)
  • 箭头函数和普通函数的区别
  • websocket的应用
  • 【物联网】什么是 DHT11(数字温湿度传感器)?
  • 为什么不能创建泛型数组?