【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
- 信息表示与编码
- 进位计数制
- 十进制(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…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
