【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
- 信息表示与编码
- 进位计数制
- 十进制(Decimal)
- 二进制(Binary)
- 十六进制(Hexadecimal)
- 进位计数制之间的转换
- 常用的信息分类与表示
- 定点表示
- 无符号数的编码
- 正整数的表示
- 原码表示法
- 定点小数的原码表示
- 定点整数的原码表示
- 补码表示法
- 模的概念
- 补码的定义
- 定点小数的补码表示
- 定点整数的补码表示
- 原码、补码之间的转换
- 反码表示法
- 定点小数的反码表示
- 定点整数的反码表示
- 移码表示法
- 移码和补码的关系
- 移码的特点
- 定点数的表示方法总结
- 浮点数的表示方法
- 浮点数的规格化表示
- 隐藏位技术
- 规格化浮点数的真值
- 十进制数的编码
- 非数值数据
- 字符的表示方法
- 字符编码-ASCII 码
- 字符编码-EBCDIC 码
- 汉字的表示方法
- 信息表示与编码
- 进位计数制
- 十进制(Decimal)
- 二进制(Binary)
- 十六进制(Hexadecimal)
- 进位计数制之间的转换
- 常用的信息分类与表示
- 定点表示
- 无符号数的编码
- 正整数的表示
- 原码表示法
- 定点小数的原码表示
- 定点整数的原码表示
- 补码表示法
- 模的概念
- 补码的定义
- 定点小数的补码表示
- 定点整数的补码表示
- 原码、补码之间的转换
- 反码表示法
- 定点小数的反码表示
- 定点整数的反码表示
- 移码表示法
- 移码和补码的关系
- 移码的特点
- 定点数的表示方法总结
- 浮点数的表示方法
- 浮点数的规格化表示
- 隐藏位技术
- 规格化浮点数的真值
- 十进制数的编码
- 非数值数据
- 字符的表示方法
- 字符编码-ASCII 码
- 字符编码-EBCDIC 码
- 汉字的表示方法
- 汉字的存储
- 汉字的输出
- 汉字编码与输入
- 区位码、国标码与机内码的关系
信息表示与编码
进位计数制
进位计数制是指,用少量的数字符号,按先后次序把它们排成数位,由低到高进行计数,计满进位,这样的方法称为进位计数制。
在进位计数制中,基数是一个很重要的概念。基数是指进位制基本特征数,即所用到的数字符号个数。
在进位计数制中,我们可以用一个与基数相关的多项式来表示该进制下的任意一个数。
十进制(Decimal)
基数:10。
符号:0,1,2,3,4,5,6,7,8,9。
计算规律:逢十进一或借一当十。
十进制数的多项式表示:
N 10 = d n − 1 × 1 0 n − 1 + d n − 2 × 1 0 n − 2 + ⋯ + d 1 × 1 0 1 + d 0 × 1 0 0 + d − 1 × 1 0 − 1 + d − 2 × 1 0 − 2 + ⋯ + d − m × 1 0 − m N_{10}=d_{n-1} \times 10^{n-1} + d_{n-2} \times 10^{n-2} + \cdots + d_1 \times 10^1 + d_0 \times 10^0 + d_{-1} \times 10^{-1} + d_{-2} \times 10^{-2} + \cdots + d_{-m} \times 10^{-m} N10=dn−1×10n−1+dn−2×10n−2+⋯+d1×101+d0×100+d−1×10−1+d−2×10−2+⋯+d−m×10−m
其中 m,n 为正整数,其中 n 为整数位数;m 为小数位数。 D i D_i Di 表示第 i 位的系数, 1 0 i 10^i 10i 称为该位的权。
二进制(Binary)
基数:2。
符号:0,1。
计算规律:逢二进一或借一。
二进制的多项式表示:
N 2 = d n − 1 × 2 n − 1 + d n − 2 × 2 n − 2 + ⋯ + d 1 × 2 1 + d 0 × 2 0 + d − 1 × 2 − 1 + d − 2 × 2 − 2 + ⋯ + d − m × 2 − m N_{2}=d_{n-1} \times 2^{n-1} + d_{n-2} \times 2^{n-2} + \cdots + d_1 \times 2^1 + d_0 \times 2^0 + d_{-1} \times 2^{-1} + d_{-2} \times 2^{-2} + \cdots + d_{-m} \times 2^{-m} N2=dn−1×2n−1+dn−2×2n−2+⋯+d1×21+d0×20+d−1×2−1+d−2×2−2+⋯+d−m×2−m
其中 n 为整数位数;m 为小数位数。 D i D_i Di 表示第 i 位的系数, 2 i 2^i 2i 称为该位的权。
十六进制(Hexadecimal)
基数:16。
符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。
计算规律:逢十六进一或借一当十六。
十六进制的多项式表示:
N 16 = d n − 1 × 1 6 n − 1 + d n − 2 × 1 6 n − 2 + ⋯ + d 1 × 1 6 1 + d 0 × 1 6 0 + d − 1 × 1 6 − 1 + d − 2 × 1 6 − 2 + ⋯ + d − m × 1 6 − m N_{16}=d_{n-1} \times 16^{n-1} + d_{n-2} \times 16^{n-2} + \cdots + d_1 \times 16^1 + d_0 \times 16^0 + d_{-1} \times 16^{-1} + d_{-2} \times 16^{-2} + \cdots + d_{-m} \times 16^{-m} N16=dn−1×16n−1+dn−2×16n−2+⋯+d1×161+d0×160+d−1×16−1+d−2×16−2+⋯+d−m×16−m
其中 n 为整数位数;m 为小数位数。 D i D_i Di 表示第 i 位的系数, 1 6 i 16^i 16i 称为该位的权。
进位计数制之间的转换
- R进制转换成十进制的方法
按权展开法:先写成多项式,然后计算十进制结果。
N = d n − 1 × R n − 1 + d n − 2 × R n − 2 + ⋯ + d 1 × R 1 + d 0 × R 0 + d − 1 × R − 1 + d − 2 × R − 2 + ⋯ + d − m × R − m N = d_{n-1} \times R^{n-1} + d_{n-2} \times R^{n-2} + \cdots + d_1 \times R^1 + d_0 \times R^0 + d_{-1} \times R^{-1} + d_{-2} \times R^{-2} + \cdots + d_{-m} \times R^{-m} N=dn−1×Rn−1+dn−2×Rn−2+⋯+d1×R1+d0×R0+d−1×R−1+d−2×R−2+⋯+d−m×R−m
- 十进制转换成二进制方法
方法1、分别对整数部分和小数部分采用两种不同的方法。
整数部分的转换采用除2取余法(基数除法)。除基取余法把给定的除以基数,取余数作为最低位的系数,然后继续将商部分除以基数,余数作为次低位系数,重复操作直至商为0。
小数部分的转换乘2取整法(基数乘法)。乘基取整法把给定的十进制小数乘以2,取其整数作为二进制小数的第一位,然后取小数部分继续乘以2,将所的整数部分作为第二位小数,重复操作直至得到所需要的二进制小数。
方法2、减权定位法。
减权定位法将十进制数依次从二进制的最高位权值进行比较,若够减则对应位置1,减去该权值后再往下比较,若不够减则对应位为0,重复操作直至差数为0。
常用的信息分类与表示
信息存在数值信息与非数值信息,数值信息包括无符号数和有符号数,无符号数默认为正整数,有符号数分为定点数和浮点数。
在计算机中,正、负号与某进制数绝对值的形式称为真值。如 +3,-5 等,即实际值;符号以及数值都数码化的数称为机器数,如 X=01011,Y=1101,即真值在机器中的表示。
计算机中常用的数据表示格式有两种,定点格式与浮点格式。定点格式容许的数值范围有限,但要求的处理硬件比较简单。浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。
定点表示
定点表示约定机器中所有数据的小数点位置是固定不变的。(由于约定在固定的位置,小数点就不再使用记号“.”来表示)通常将数据表示成纯小数或纯整数。
因此,定点数就是指小数点位置固定不变的数。定点数分为定点整数和定点小数。定点整数是指小数点固定在最低位数的右面;定点小数是指小数点固定在最高位数的后面,即纯小数表示。
定点数表示的范围如下:
纯小数:
0 ≤ ∣ x ∣ ≤ 1 − 2 − n 0 \leq |x| \leq 1 - 2^{-n} 0≤∣x∣≤1−2−n
纯整数:
0 ≤ ∣ x ∣ ≤ 2 n − 1 0 \leq |x| \leq 2^{n - 1} 0≤∣x∣≤2n−1
目前计算机中多采用定点纯整数表示,因此我们将定点数表示的运算简称为整数运算。
无符号数的编码
正整数的表示
正整数可以表示为以下的位串:
x = x 0 x 1 x 2 … x n , x i = { 0 , 1 } , 0 ≤ i ≤ n x = x_0 x_1 x_2 \ldots x_n, \quad x_i = \{0,1\}, \quad 0 \leq i \leq n x=x0x1x2…xn,xi={0,1},0≤i≤n
即
x = x 0 ⋅ 2 n + x 1 ⋅ 2 n − 1 + … + x n − 1 ⋅ 2 1 + x n x = x_0 \cdot 2^n + x_1 \cdot 2^{n-1} + \ldots + x_{n-1} \cdot 2^1 + x_n x=x0⋅2n+x1⋅2n−1+…+xn−1⋅21+xn
其中 0 ≤ x ≤ 2 n + 1 − 1 0 \leq x \leq 2^{n+1} - 1 0≤x≤2n+1−1
例如,对于 x = 010101 x = 010101 x=010101,其数值为 2 4 + 2 2 + 2 0 = 21 2^4 + 2^2 + 2^0 = 21 24+22+20=21。
在实际的数据处理的过程中,如不需要设置符号位可用全部字长来表示数值大小。如 8 位无符号数的取值范围是 0~255( 2 8 − 1 2^8 - 1 28−1)。
原码表示法
定点小数的原码表示
若定点小数的原码形式为 x 0 . x 1 x 2 ⋯ x n x_0.x_1 x_2 \cdots x_n x0
相关文章:
【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码 信息表示与编码进位计数制十进制(Decimal)二进制(Binary)十六进制(Hexadecimal)进位计数制之间的转换常用的信息分类与表示定点表示无符号数的编码正整数的表示原码表示法定点小数的原码表示定点整数的原码…...
【从零开始学习计算机科学】操作系统(五)处理器调度
【从零开始学习计算机科学】操作系统(五)处理器调度 处理器调度一些简单的短程调度算法的思路先来先服务(First-Come-First-Served,FCFS)优先级调度及其变种最短作业优先调度算法(SJF)--非抢占式最短作业优先调度算法(SJF)--抢占式最高响应比优先调度算法轮转调度算法…...
Flink之水印(watermark)的补充理解
水印(Watermark):用于事件时间处理,标记数据流的进度,解决乱序和延迟问题,触发窗口计算 一、Flink 水印的作用 处理乱序事件 水印(Watermark)是 Flink 用于处理事件时间&…...
数据结构全解析:从线性到非线性,优缺点与应用场景深度剖析
1. 线性数据结构 (1)数组(Array)(适合静态数据) 优点: 随机访问高效:通过索引可以直接访问元素,时间复杂度为 O(1)。 内存连续:数组在内存中是连续存储的&…...
《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记
《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记 技术栈说明 后端:Python 3.10 + Flask 框架数据库:MySQL前端:ECharts 5.4 + HTML/CSS数据可视化:柱状图 / 折线图 / 饼图 / 雷达图项目结构 project/ ├── server.py # 后端服务 └──…...
StringBuilder和StringJoiner的运用
package test12; import java.util.Scanner; import java.util.StringJoiner;public class Test { public static void main(String[] args) {/* String str "你玩的真好,下次别玩了,TMD,CNM";String[] arr {"TMD", &…...
科技创新:改变生活的力量与未来趋势
人工智能在智能客服中的应用越来越普遍。它改变了传统的客服模式。AI可以快速回答用户的问题,提高了客服效率和服务质量。 首先,人工智能能够处理大量信息。智能客服可以在几秒钟内回应客户的请求。这比人工客服快得多。客户不需要等待很久就能得到答案…...

Maven指定JDK
在使用 Maven 管理 Java 项目时,有时需要指定使用特定的 JDK 版本。这通常是因为项目需要与特定版本的 JDK 兼容,或者在不同的开发环境中需要确保使用正确的 JDK 版本。通常来说在IDEA工具中设置了正确的JDK版本,使用IDEA编译也不会有任何异常…...

Jenkins持续集成与Web前端、SpringBoot项目的部署
Jenkins是一个开源的持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)工具,广泛应用于软件开发过程中。它基于Java开发,旨在提供一个开放易用的软件平台,帮助软件项…...

如何使用Opentelemetry+jaeger对Go与Java项目实现分布式链路追踪
本文介绍![如何使用Opentelemetryjaeger实现分布式链路追踪] 关于opentelemetry的介绍可以看下面的文章 https://blog.csdn.net/qq_62368250/article/details/143516314本文中相关图片以及源代码地址 https://github.com/wuchenyanghaoshuai/others/blob/main/step39/README.…...

LabVIEW闭环控制系统硬件选型与实时性能
在LabVIEW闭环控制系统的开发中,硬件选型直接影响系统的实时性、精度与稳定性。需综合考虑数据采集速度(采样率、接口带宽)、计算延迟(算法复杂度、处理器性能)、输出响应时间(执行器延迟、控制周期&#x…...
Html5学习教程,从入门到精通, HTML5超链接应用的详细语法知识点和案例代码(18)
HTML5超链接应用的详细语法知识点和案例代码 超链接(Hyperlink),也称为跃点链接,是互联网和文档编辑中的一种重要概念。 超链接的定义 超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页&#…...

STM32 HAL库 CAN过滤器配置
之前在STM32 f407 CAN收发 基于HAL库和Cubemx配置_stm32f407can收发程序-CSDN博客这篇博文里写了一下配置CAN收发的方法,当时由于并没有使用过滤器的现实需求,所以就也没仔细研究。现在工作中确实需要用到过滤器了,有些项目中控制器和发动机E…...
【前端面试题】Vu3常见的面试题
1.Vue3与 Vue2的核心区别有哪些? 响应式系统 : Vue2:通过Object.defineProperty 实现响应式。这种方式在处理对象属性的添加和删除时存在局限性,且无法直接监控数组的变化 ;Vue3:采用Proxy 实现响应式&…...

【数据分享】2001-2024年我国逐年植被净初级生产力(NPP)数据
植被净初级生产力(Net Primary Productivity,NPP)是生态学中的一个重要概念,表示单位面积植被在特定时间内吸收的净光合有机物,是衡量生态系统中植物通过光合作用所产生的有机物质减去植物呼吸作用消耗的有机物质的量&…...
java-正则表达式
一、正则表达式能干什么? ✅ 验证格式:手机号、邮箱、日期✅ 提取数据:从日志/文本中抓取关键信息✅ 替换文本:批量修改字符串内容 二、Java正则核心API Java中用 java.util.regex 包的两个类: Pattern:…...
正则表达式(复习)
文章目录 一、[]: 一个字符集合二、{}: 重复次数三、特殊符号四、(): 分组五、python代码示例六、注意 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个…...

sonarqube+SonarScanner+postpresql+jenkins
本地执行参考这篇 sonarqubeSonarScannerPostgreSQL实现代码质量扫描(windows)_sonarqube 10.7部署-CSDN博客 集成到Jenkins中操作如下 在 Jenkins 中安装 SonarQube Scanner 和配置 Job 1、安装 SonarQube Scanner 插件: 在 Jenkins 的管理…...
牛客周赛Round 84
本场比赛难度不大,也是本人第一次AK,最后一题用组合数学推公式,本篇博客主要讲解最后一题的思路 G-小红的陡峭值(五)(hard)_牛客周赛 Round 84 思路:本题要我们求p/q mod M ,即p*&am…...

TDengine 配置 ODBC 数据源
简介 TDengine ODBC 是为 TDengine 实现的 ODBC 驱动程序,支持 Windows 系统的应用(如 PowerBI 等)以及用户自定义开发的应用程序,通过 ODBC 标准接口访问本地、远程和云服务的 TDengine 数据库。 TDengine ODBC 提供基于 WebSo…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...