【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码

【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码

  • 信息表示与编码
    • 进位计数制
      • 十进制(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=dn1×10n1+dn2×10n2++d1×101+d0×100+d1×101+d2×102++dm×10m
其中 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=dn1×2n1+dn2×2n2++d1×21+d0×20+d1×21+d2×22++dm×2m
其中 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=dn1×16n1+dn2×16n2++d1×161+d0×160+d1×161+d2×162++dm×16m
其中 n 为整数位数;m 为小数位数。 D i D_i Di 表示第 i 位的系数, 1 6 i 16^i 16i 称为该位的权。

进位计数制之间的转换

  1. 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=dn1×Rn1+dn2×Rn2++d1×R1+d0×R0+d1×R1+d2×R2++dm×Rm

  1. 十进制转换成二进制方法

方法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} 0x12n

纯整数:
0 ≤ ∣ x ∣ ≤ 2 n − 1 0 \leq |x| \leq 2^{n - 1} 0x2n1

目前计算机中多采用定点纯整数表示,因此我们将定点数表示的运算简称为整数运算。

无符号数的编码

正整数的表示

正整数可以表示为以下的位串:
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=x0x1x2xn,xi={ 0,1},0in

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=x02n+x12n1++xn121+xn
其中 0 ≤ x ≤ 2 n + 1 − 1 0 \leq x \leq 2^{n+1} - 1 0x2n+11

例如,对于 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 281)。

原码表示法

定点小数的原码表示

若定点小数的原码形式为 x 0 . x 1 x 2 ⋯ x n x_0.x_1 x_2 \cdots x_n x0

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++性能分析工具

C性能分析工具常用的三种。perf、gprof、pprof perf工具需要root权限,设置perf的suid位并不行,需要设置perf对应的内核参数。 perf使用: g -o example example.cpp -O2 # 运行程序并采样 sudo perf record -g ./example # 查看采样结果 sud…

【编译器】VSCODE搭建ESP32-C3

【编译器】VSCODE搭建ESP32-C3 文章目录 [TOC](文章目录) 前言一、下载配置二、编译三、烧录四、参考资料总结 前言 使用工具: 1. 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载配置 安装IDF,打开例程 二、编译 三…

《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》

PrometheusGrafana部署配置 Prometheus安装 下载Prometheus服务端 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.https://prometheus.io/…

LLM大模型-李宏毅

本博客是对b站上,李宏毅大模型课程的简单记录。 大模型入门到进阶,一套全解决! 第1讲:生成式AI是什么? ChatGPT【Chat Generative Pre-trained Transformer】每一步都是文字接龙,其实就是分类问题 文字接…

Codeforces Round 976 (Div. 2) (部分题解)

先做一个提前的小结,感觉这场每题有很特别的结论或者很难去guess的点,但就是能对,可能在证明上有点复杂吧。 A. Find Minimum Operations 思路:题意的话就是用来代替的最小操作步骤, 这里其实可以转换成求将改写成进…

DMR协议空中接口部分

文章目录 前言DMR 空中接口协议栈模型无线空中接口发送与接收参考模型DMR的TDMA结构帧结构突发结构数据与控制突发语音突发公共广播信道突发 数据信息传送时序语音信息传送时序帧同步 调制解调4-CPFSK正交调制4-CPFSK解调基带成型滤波 信道编码类型参考 前言 DMR 协议的标准号主…

专题二串联所有单词的子串

1.题目 题目分析: 有一个字符串s和字符串数组,如何字符串数组里面的元素可以组成一个字符串,然后要在字符串里面找到连续子串跟组成的字符串一样,返回起始地址。 2.算法原理 这道题可以把字符串数组的元素string看出char&#x…

uniapp或者vue 使用serialport

参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位:否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…

编程题-计算器(中等)

题目: 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。 解法一(栈&…

数据增强术:如何利用大模型(LLMs)来模拟不同的扰动类型以增强信息提取任务的鲁棒性

一、对抗样本库构建 1. 基于LLMs的领域针对性扰动设计对抗样本生成 替换实体、三元组和触发器(Replace Entity, Triple, and Trigger) 使用LLMs(如GPT-4)来替换句子中的实体、关系三元组或事件触发器,同时保持其类型不…

深入了解Linux —— git三板斧

版本控制器git 为了我们方便管理不同版本的文件,就有了版本控制器; 所谓的版本控制器,就是能够了解到一个文件的历史记录(修改记录);简单来说就是记录每一次的改动和版本迭代的一个管理系统,同…

Windows编程----进程的当前目录

进程的当前目录 Windows Api中有大量的函数在调用的时候,需要传递路径。比如创建文件,创建目录,删除目录,删除文件等等。拿创建文件的CreateFile函数做比喻,如果我们要创建的文件路径不是全路径,那么wind…

MyBatis-Plus分页控件使用及使用过程发现的一个坑

最近维护一个旧项目的时候,出现了一个BUG,经排查后发现是Mybatis-plus分页控件使用的时候需要注意的一个问题,故在本地使用MybatisPlus模拟出现了一下这个问题。 首先,先说一下MyBatis-Plus的使用: 1)引入…

服务端和客户端通信(TCP)

服务端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks;namespace TeachTcpServer {class Program{static void Main(string[] args){#region 知识点一 …

Windows下配置Flutter移动开发环境以及AndroidStudio安装和模拟机配置

截止 2025/3/9 ,版本更新到了 3.29.1 ,但是为了防止出现一些奇怪的bug,我安装的还是老一点的,3.19,其他版本的安装同理。AndroidStudio用的是 2024/3/1 版本。 — 1 环境变量(Windows) PUB_H…

C++11中的Condition_variable

C11中的condition_variable 在C11中,条件变量(std::condition_variable)是线程同步机制之一,用于在多线程环境中实现线程间的通信和协调。它允许一个或多个线程在某个条件尚未满足时等待,直到其他线程通知条件已经满足…

ROS2-话题学习

强烈推荐教程: 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

深度学习模型Transformer核心组件—前馈网络FFN

第一章:人工智能之不同数据类型及其特点梳理 第二章:自然语言处理(NLP):文本向量化从文字到数字的原理 第三章:循环神经网络RNN:理解 RNN的工作机制与应用场景(附代码) 第四章:循环神经网络RNN、LSTM以及GR…

Helm安装chart包到k8s报错“不能重复使用名称,名称已被使用”

一、报错提示如下 “Error: INSTALLATION FAILED: cannot re-use a name that is still in use”,意思是安装chart时提供的名称已存在,不能重复使用同一个名称。 登录后复制 rootiZ:/usr/local/src/my-helm-repo/charts# helm install mymemcached3 memcached -n te…

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路20250309

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路 一、容器化部署的范式转变 在 Docker 生态系统的演进中,容器编排正从“手动操作”走向“自动化管理”。根据 Docker 官方 2023 年开发者调查报告,78% 的开发者已采用 Docker Compo…