计算机组成原理——数据表示(一)

生活是一道长长的旅程,充满了挑战和困难。然而,我们必须坚持下去,努力前进。无论遇到什么困难,我们都要勇敢面对,永不放弃。只有通过不断的努力和坚持,我们才能够取得成功。在这个旅程中,我们可能会失败,但失败并不可怕,只要我们愿意从失败中吸取教训,不断改进自己,我们就一定能够找到成功的道路。成功不是一蹴而就的,它需要我们付出持久的努力和毅力。在困难面前,我们要保持积极的心态,坚信自己的能力,并将困难视为机会去成长和进步。我们要相信自己的潜力和能力,相信未来的美好。只有不停地努力和奋斗,我们才能够实现自己的梦想,创造属于自己的辉煌。让我们一起努力,不断追求进步,勇往直前,向着成功的目标前进!

计算机组成原理资源网

https://www.wenjingketang.com/这里面有ppt课后习题及答案,需要的可以自行下载

目录

1.1 数制与编码

1.1.1 常用的进位计数制及其相互转换

1.1.2 BCD码 (Binary-Coded Decimal)

1.1.3 字符与字符串

1.1.4 汉字编码

1.1.5 校验码

1.1.6 真值和机器数


1.1 数制与编码

1.1.1 常用的进位计数制及其相互转换

定义: 进位计数制是表示数值的一种方法,每个数字的位置决定了它的权重。常用的进位计数制包括:

  • 二进制(Binary): 只有0和1两个数字,基数为2。
  • 八进制(Octal): 使用0到7八个数字,基数为8。
  • 十进制(Decimal): 我们日常生活中最常用的计数系统,使用0到9十个数字,基数为10。
  • 十六进制(Hexadecimal): 使用0到9和A到F共十六个符号,其中A到F分别代表10到15,基数为16。

相互转换:

  • 十进制转其他进制: 以转换为二进制为例,通过除基取余法进行转换。例如,将十进制数42转换为二进制:

    • 42 ÷ 2 = 21...0
    • 21 ÷ 2 = 10...1
    • 10 ÷ 2 = 5...0
    • 5 ÷ 2 = 2...1
    • 2 ÷ 2 = 1...0
    • 1 ÷ 2 = 0...1
    • 结果为101010,从下往上读取余数。
  • 其他进制转十进制: 使用按权展开求和法。例如,将二进制数101010转换为十进制:

    • 1×25+0×24+1×23+0×22+1×21+0×20=32+0+8+0+2+0=421×25+0×24+1×23+0×22+1×21+0×20=32+0+8+0+2+0=42
  • 二进制与八进制/十六进制之间的转换: 直接分组转换。因为8 = 2^3,所以每三位二进制数可以转换成一位八进制数;同样地,由于16 = 2^4,每四位二进制数可以转换成一位十六进制数。例如,将二进制数101010转换为八进制:

    • 101 010 → 52
    • 将二进制数101010转换为十六进制:
    • 0010 1010 → 2A
1.1.2 BCD码 (Binary-Coded Decimal)

定义: BCD码是一种特殊的二进制编码方式,用来表示十进制数。每一位十进制数用4位二进制数表示(0000到1001),因此一个字节可以表示两位十进制数。

例子:

  • 十进制数56在BCD码中表示为0101 0110

特点:

  • 直观易懂,便于人们阅读和理解。
  • 在某些应用场景下(如金融计算)避免了二进制浮点运算带来的精度损失。
1.1.3 字符与字符串

字符编码:

  • 计算机内部使用特定的编码方案来表示字符。最常用的是ASCII(American Standard Code for Information Interchange)和Unicode标准。
    • ASCII: 使用7位或8位二进制数表示128或256个不同的字符,包括字母、数字、标点符号等。例如,字母'A'在ASCII中的编码是01000001
    • Unicode: 支持更多的字符集,特别是非拉丁文字符,如中文、日文等。UTF-8是变长编码,对于ASCII字符占用1个字节,而对于其他字符(如汉字)则可能需要2到4个字节。

字符串:

  • 字符串是由多个字符组成的序列。例如,在Python中,字符串可以用引号括起来表示:
    s = "Hello, World!"
1.1.4 汉字编码

定义: 汉字编码是指如何用计算机可以识别的方式表示汉字。早期有GB2312、GBK等编码标准,现在普遍采用UTF-8、UTF-16等更通用的Unicode编码。

例子:

  • UTF-8编码下的“你好”:
    • “你”的UTF-8编码可能是E4 BD A0(具体取决于实现)。
    • “好”的UTF-8编码可能是E5 A5 BD

特点:

  • UTF-8是变长编码,对于ASCII字符占用1个字节,而对于其他字符(如汉字)则可能需要2到4个字节。
  • 它兼容ASCII,同时能够表示全世界几乎所有语言的文字。
1.1.5 校验码

定义: 校验码是为了检测传输错误而附加的数据。它可以是奇偶校验、循环冗余校验(CRC)等形式。

应用:

  • 在数据通信中,发送端会根据一定规则生成校验码并附带在数据后面一起发送;接收端收到数据后重新计算校验码并与接收到的进行对比,如果不一致则说明数据可能出错。

例子:

  • 奇偶校验: 如果使用偶校验,那么所有有效位加上校验位应该包含偶数个1。例如,数据1010(有两个1)加上偶校验位后变为10100(仍然是两个1)。
  • 循环冗余校验(CRC): CRC是一种更为复杂的校验方法,它基于多项式除法原理,能提供更高的检错能力。例如,Ethernet帧尾部的FCS字段就是通过CRC算法计算出来的。
1.1.6 真值和机器数

真值: 真值是指实际存在的数值,即我们在日常生活和数学中使用的数字,可以是正数、负数或零。

机器数: 机器数是计算机内部用来表示数值的形式,采用二进制表示法。由于计算机硬件基于二进制逻辑工作,所有数据必须以机器数形式存储和处理。

  • 无符号数: 只能表示非负数,每一位都用于表示数值大小,没有专门的符号位。
  • 有符号数: 可以表示正数和负数,最高位通常作为符号位,0 表示正数,1 表示负数。
    • 原码: 符号位加上绝对值的二进制表示。例如,8位二进制中的+5为00000101,-5为10000101
    • 反码: 正数的反码等于其原码;负数的反码是在原码基础上,除了符号位外,其余各位取反。例如,-5的反码为11111010
    • 补码: 是最常用的表示方式。正数的补码等于其原码;负数的补码是在其反码的基础上加1。例如,-5的补码为11111011

计算示例:

  • 从真值到机器数(补码)的转换:
    • 转换十进制数-5为8位二进制补码:
      1. 先将5转换为二进制:00000101
      2. 对这个二进制数取反:11111010
      3. 加1:11111011
  • 从机器数(补码)到真值的转换:
    • 解释8位二进制补码11111011
      1. 检查符号位,最高位是1,说明这是一个负数。
      2. 减1后对剩余部分取反:11111010 -> 00000101
      3. 将结果转换回十进制,并加上负号:-5

总结: 数制与编码的知识覆盖了计算机内部数据表示的核心概念,从不同进位计数制之间的转换到具体的编码方式,再到确保数据完整性的校验机制,都是理解和设计高效计算机系统的关键要素。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】双向循环链表实现简易图书管理系统的增删改查

图书管理系统 使用双向循环链表实现一个简单的图书管理系统&#xff0c;图书管理系统有如下功能&#xff1a; 1.添加书籍 2.删除书籍 3.修改书籍信息 4.查询书籍信息 5.借书 6.还书 #include <stdio.h> #include <stdlib.h> #include <string.h>// 书籍结构体…

强化学习入门--基本概念

强化学习基本概念 grid-world example 这个指的是一个小机器人&#xff08;agent&#xff09;在一个网格区域&#xff08;存在边界&#xff09;&#xff0c;网格中存在需要躲避的格子和目标格子&#xff0c;我们的目的就是找到到达目标格子的最短路径 state 表示智能体相对…

STMCubeMX配置STM32F103ZET6

1 配置时钟 配置RCC。 配置 SYS。将Timebase Source配置为TIM1, SysTick留给FreeRTOS用。 注意: 由于第一次配置的时候忘记配置这个步骤,导致工程第一次烧录成功后,后面一直无法烧录,报以下错误: keil no target connect Error: Flash Download failed - Target DLL h…

OFD 套版生成原理与 C# 实现详解

1. 引言 OFD&#xff08;Open Fixed-layout Document&#xff09;是一种基于 XML 的开放版式文档格式&#xff0c;主要用于电子文档的存储和交换。与 PDF 类似&#xff0c;OFD 是一种固定版式文档格式&#xff0c;能够确保文档在不同设备和平台上显示的一致性。OFD 格式广泛应…

Leetcode:2239

1&#xff0c;题目 2&#xff0c;思路 循环遍历满足条件就记录&#xff0c;最后返回结果值 3&#xff0c;代码 public class Leetcode2239 {public static void main(String[] args) {System.out.println(new Solution2239().findClosestNumber(new int[]{-4, -2, 1, 4, 8})…

C语言之斗地主游戏

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 ​ C语言之斗地主游戏 目录 程序概述程序设计 Card类CardGroup类Player类LastCards类Land…

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换

形态变换 图像处理中的形态学操作是处理图像结构的有效方法。以下是一些常见的形态学操作的介绍及其在 OpenCV 中的实现示例。 1. 腐蚀&#xff08;Erosion&#xff09; 腐蚀操作通过消除图像边界来减少图像中的白色区域&#xff08;前景&#xff09;&#xff0c;使物体的边…

【Prometheus】PromQL进阶用法

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

SiamCAR(2019CVPR):用于视觉跟踪的Siamese全卷积分类和回归网络

原文标题:SiamCAR: Siamese Fully Convolutional Classification and Regression for Visual Tracking 中文标题:SiamCAR:用于视觉跟踪的Siamese全卷积分类和回归 代码地址: https://github.com/ohhhyeahhh/SiamCAR Abstract 通过将视觉跟踪任务分解为两个子问题,…

计算机网络介质访问控制全攻略:从信道划分到协议详解!!!

一、信道划分介质访问控制 介质访问控制&#xff1a;多个节点共享同一个“总线型”广播信道时&#xff0c;可能发生“信号冲突” 应该怎么控制各节点对传输介质的访问&#xff0c;才能减少冲突&#xff0c;甚至避免冲突? 时分复用(TDM) 时分复用&#xff1a;将时间分为等长的“…

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置 1.Prometheus部署1.2.Prometheus修改默认端口 2.grafana可视化页面部署3.alertmanager部署4.监控配置4.1.主机监控node-exporter4.2.监控mysql数据库mysqld_exporter4.3.监控mongod数据库mongodb_expo…

基于tldextract提取URL里的子域名、主域名、顶级域

TLD是TopLevel Domain的缩写。‌tldextract‌ 是一个用于从URL中提取子域、主域名和顶级域&#xff08;TLD&#xff09;的Python库。它利用公共后缀列表&#xff08;Public Suffix List&#xff09;来确保即使是复杂或不常见的URL结构也能被正确解析。tldextract能够处理包括IC…

常见Arthas命令与实践

Arthas 官网&#xff1a;https://arthas.aliyun.com/doc/&#xff0c;官方文档对 Arthas 的每个命令都做出了介绍和解释&#xff0c;并且还有在线教程&#xff0c;方便学习和熟悉命令。 Arthas Idea 的 IDEA 插件。 这是一款能快速生成 Arthas命令的插件&#xff0c;可快速生成…

Mellanox ConnectX 系列网卡的双驱动架构:以太网与 InfiniBand 的协同设计

在现代数据中心和高性能计算(HPC)环境中,网络硬件的性能和功能至关重要。Mellanox ConnectX 系列网卡以其卓越的性能和多功能性而闻名,支持从传统的以太网到高性能的 InfiniBand 网络协议。这种多功能性使得 Mellanox 网卡能够满足不同应用场景的需求,从常规的数据中心网络…

win32汇编环境,对多行编辑框添加或删除文本

;运行效果 ;win32汇编环境,对多行编辑框添加或删除文本 ;主要要先设置文本的开始点与结束点&#xff0c;然后把一段文本顶替上去。没有添加文本或删除文本的概念&#xff0c;只有顶替。如果开始点与结束点都是前面文本的长度值&#xff0c;则成了从后面添加文本的效果。如果结束…

CSDN年度回顾:技术征途上的坚实步伐

嘿&#xff0c;时光过得可真快呀&#xff0c;就像那匹跑得飞快的白马&#xff0c;嗖的一下&#xff0c;2024 年的日历就这么悄无声息地翻到了最后一页。这会儿我回头看看在 CSDN 上度过的这一年&#xff0c;心里那叫一个感慨万千&#xff0c;满满的都是喜悦&#xff0c;就像心里…

泛型子类使用Builder提示:both methods have same erasure, yet neither hides the other

父类 Data Builder AllArgsConstructor NoArgsConstructor public class ParentClass {public String name; } 子类 AllArgsConstructor NoArgsConstructor Data SuperBuilder public class ChildClass<T> extends ParentClass {private T value; } 提示错误 builde…

Springboot集成Elasticsearch8.0(ES)版本,采用JAVA Client方式进行连接和实现CRUD操作

本文章介绍了 springboot t集成Elasticsearch8.0(ES)版本,如何通过 AVA Client方式进行连接和实现CRUD操作 在ES7.15版本之后,ES官方将高级客户端 RestHighLevelClient标记为弃用状态。同时推出了全新的 Java API客户端 Elasticsearch Java API Client,该客户端也将在 Ela…

人脸识别打卡系统--基于QT(附源码)

逃离舒适区 项目源代码放在我的仓库中&#xff0c;有需要自取 项目地址 https://gitcode.com/hujiahangdewa/Face_recognition.git 文章目录 一、项目结构分析二、服务器的搭建三、客户端的搭建四、人脸识别库的申请五、基于人脸识别库的识别判断六、QT人脸识别----调用百度ai…

人工智能在数字化转型中的角色:从数据分析到智能决策

引言 在数字化转型浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正迅速崛起&#xff0c;成为推动企业创新和变革的关键力量。面对日益复杂的市场环境和激烈的行业竞争&#xff0c;企业亟需借助技术手段提高运营效率、优化决策过程&#xff0c;并增强市场竞争力。而AI…