计算机组成原理和体系

常见的进制

{\quad} 二进制:0,1
{\quad} 八进制:0,1,2,3,4,5,6,7
{\quad} 十进制:0,1,2,3,4,5,6,7,8,9
{\quad} 十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

任意进制→十进制

{\quad} 二进制:10010.1 {\qquad} {\quad} 1* 2 4 2^4 24 +0* 2 3 2^3 23+0* 2 2 2^2 22+1* 2 1 2^1 21+0* 2 0 2^0 20+1* 2 − 1 2^{-1} 21

{\quad} 八进制:251.5 {\qquad} {\qquad} 2* 8 2 8^2 82 +5* 8 1 8^1 81+1* 8 0 8^0 80+5* 8 − 1 8^{-1} 81

{\quad} 十六进制:AE86.1 {\qquad} {\quad} 10* 1 6 3 16^3 163 +14* 1 6 2 16^2 162+8* 1 6 1 16^1 161+6* 1 6 0 16^0 160+1* 1 6 − 1 16^{-1} 161

常用2的次方

2 − 3 2^{-3} 23 2 − 2 2^{-2} 22 2 − 1 2^{-1} 21 2 0 2^0 20 2 1 2^1 21 2 2 2^2 22 2 3 2^3 23 2 4 2^4 24 2 5 2^5 25 2 6 2^6 26 2 7 2^7 27 2 8 2^8 28 2 9 2^9 29 2 10 2^{10} 210 2 11 2^{11} 211 2 12 2^{12} 212
0.1250.250.51248163264128256512102420484096

二进制→八进制

3位一组,每组转换为八进制符号

001 1 \frac{001}{1} 1001 111 7 \frac{111}{7} 7111 000 0 \frac{000}{0} 0000 010 2 \frac{010}{2} 2010. 011 3 \frac{011}{3} 3011 010 2 \frac{010}{2} 2010

八进制→二进制

每位八进制对应3位二进制

( 251.5 ) 8 (251.5)_8 (251.5)8 ( 010 101 001.101 ) 2 (010\ 101\ 001.101)_2 (010 101 001.101)2

二进制→十六进制

4位一组,每组转换为十六进制符号

0011 3 \frac{0011}{3} 30011 1100 C \frac{1100}{C} C1100 0010 2 \frac{0010}{2} 20010 0110 6 \frac{0110}{6} 60110. 1000 8 \frac{1000}{8} 81000

十六进制→二进制

每位十六进制对应4位二进制

( A E 86.1 ) 16 (AE86.1)_{16} (AE86.1)16 ( 1010 1110 1000 0110.0001 ) 2 (1010\ 1110\ 1000\ 0110.0001)_2 (1010 1110 1000 0110.0001)2

十进制→任意进制

十进制转R进制使用短除法

例:将94转换为二进制

被除数除数余数
2940
2471
2231
2111
251
220
211

转换完成的二进制为(由下往上):1011110

数据的表示——真值和机器数

15→1111 \qquad +15→ 0 1111 0\ 1111 0 1111

8→1000 \qquad -8→ 1 1000 1\ 1000 1 1000

真值:符合人类习惯的数字
机器数:数字实际存到机器的形式,正负号需要数字化,其中0表示正,1表示负

定点数VS浮点数

定点数:小数点的位置固定 \qquad 例:996.07——常规计数
浮点数:小数点的位置不固定 \qquad 例:9.9607* 1 0 2 10^2 102——科学计数
定点数的表示 { 无符号数 有符号数 { 原码 反码 补码 移码 定点数的表示\begin{cases} 无符号数\\ \\ 有符号数\begin{cases} 原码\\ 反码\\ 补码\\ 移码 \end{cases} \end{cases} 定点数的表示 无符号数有符号数 原码反码补码移码

无符号数:整个机器字长全部二进制位均为数值位,相当于绝对值,通常只有无符号整数,没有无符 \qquad \qquad 号小数。

原码

原码:用数值部分表示真值的绝对值,符号位“0/1”,对应“正/负”

常写为: [ x ] 原 [x]_原 [x]= 1 0010011 1\ 0010011 1 0010011

若机器字长n+1位,原码整数的表示范围:-( 2 n 2^n 2n-1)=<x=<( 2 n 2^n 2n-1)

真值0有+0和-0两种形式
[ + 0 ] 原 [+0]_原 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 原 [-0]_原 [0]= 1 000 0000 1\ 000\ 0000 1 000 0000

反码

反码:若符号位为0,则反码与原码相同
\qquad 若符号位为1, 则数值位全部取反

x=+19D \qquad [ x ] 原 [x]_原 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011
\qquad \qquad \quad [ x ] 反 [x]_反 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011

x=-19D \qquad [ x ] 原 \ [x]_原  [x]= 1 001 0011 1\ 001\ 0011 1 001 0011
\qquad \qquad \quad [ x ] 反 [x]_反 [x]= 1 110 1100 1\ 110\ 1100 1 110 1100

若机器字长n+1位,反码整数的表示范围:-( 2 n 2^n 2n-1)=<x=<( 2 n 2^n 2n-1)

真值0有+0和-0两种形式
[ + 0 ] 原 [+0]_原 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 原 [-0]_原 [0]= 1 000 0000 1\ 000\ 0000 1 000 0000
[ + 0 ] 反 [+0]_反 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 反 [-0]_反 [0]= 1 111 1111 1\ 111\ 1111 1 111 1111

补码

补码:正数的补码=原码
\qquad 负数的补码=反码末尾+1(要考虑进位)

x=+19D \qquad [ x ] 原 [x]_原 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011
\qquad \qquad \quad [ x ] 反 [x]_反 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011
\qquad \qquad \quad [ x ] 补 [x]_补 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011

x=-19D \qquad [ x ] 原 \ [x]_原  [x]= 1 001 0011 1\ 001\ 0011 1 001 0011
\qquad \qquad \quad [ x ] 反 [x]_反 [x]= 1 110 1100 1\ 110\ 1100 1 110 1100
\qquad \qquad \quad [ x ] 补 [x]_补 [x]= 1 110 1101 1\ 110\ 1101 1 110 1101

[ + 0 ] 原 [+0]_原 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 原 [-0]_原 [0]= 1 000 0000 1\ 000\ 0000 1 000 0000
[ + 0 ] 反 [+0]_反 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 反 [-0]_反 [0]= 1 111 1111 1\ 111\ 1111 1 111 1111
[ + 0 ] 补 [+0]_补 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 补 [-0]_补 [0]= 0 000 0000 0\ 000\ 0000 0 000 0000

[ + 0 ] 补 [+0]_补 [+0]= [ − 0 ] 补 [-0]_补 [0]= 0 000 0000 0\ 000\ 0000 0 000 0000
注:补码的真值0只有一种形式!!!

定点整数补码 [ x ] 补 [x]_补 [x]= 1 000 0000 1\ 000\ 0000 1 000 0000,表示x=- 2 7 2^7 27

若机器字长n+1位,补码整数的表示范围:
- 2 n 2^n 2n=<x=<( 2 n 2^n 2n-1),比原码多表示一个- 2 n 2^n 2n

移码

移码:补码的基础上将符号位取反,移码只能用于表示整数

x=+19D \qquad [ x ] 原 [x]_原 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011
\qquad \qquad \quad [ x ] 反 [x]_反 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011
\qquad \qquad \quad [ x ] 补 [x]_补 [x]= 0 001 0011 0\ 001\ 0011 0 001 0011
\qquad \qquad \quad [ x ] 移 [x]_移 [x]= 1 001 0011 1\ 001\ 0011 1 001 0011

x=-19D \qquad [ x ] 原 \ [x]_原  [x]= 1 001 0011 1\ 001\ 0011 1 001 0011
\qquad \qquad \quad [ x ] 反 [x]_反 [x]= 1 110 1100 1\ 110\ 1100 1 110 1100
\qquad \qquad \quad [ x ] 补 [x]_补 [x]= 1 110 1101 1\ 110\ 1101 1 110 1101
\qquad \qquad \quad [ x ] 移 [x]_移 [x]= 0 110 1101 0\ 110\ 1101 0 110 1101

[ + 0 ] 原 [+0]_原 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 原 [-0]_原 [0]= 1 000 0000 1\ 000\ 0000 1 000 0000
[ + 0 ] 反 [+0]_反 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 反 [-0]_反 [0]= 1 111 1111 1\ 111\ 1111 1 111 1111
[ + 0 ] 补 [+0]_补 [+0]= 0 000 0000 0\ 000\ 0000 0 000 0000 \qquad [ − 0 ] 补 [-0]_补 [0]= 0 000 0000 0\ 000\ 0000 0 000 0000
[ + 0 ] 移 [+0]_移 [+0]= 1 000 0000 1\ 000\ 0000 1 000 0000 \qquad [ − 0 ] 移 [-0]_移 [0]= 1 000 0000 1\ 000\ 0000 1 000 0000

[ + 0 ] 移 [+0]_移 [+0]= [ − 0 ] 移 [-0]_移 [0]= 1 000 0000 1\ 000\ 0000 1 000 0000
注:移码的真值0只有一种形式!!!

若机器字长n+1位,移码整数的表示范围:
- 2 n 2^n 2n=<x=<( 2 n 2^n 2n-1),与补码相同

浮点数

浮点数:浮点数是小数点位置不固定的数,它能表示更大范围的数。

表示格式: 阶符 \qquad 阶码 \qquad 数符 \qquad 尾数
阶码常为带符号的纯整数,尾数为带符号的纯小数

浮点数通常表示成:N=M* R E R^E RE
其中,M为尾数,R为基数,E为阶码

阶码:决定浮点数的数值范围
尾数:决定浮点数的数值精度

校验码:海明码

海明码的构成方法:在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。

设数据位n位,检验为k位,则n和k必须满足以下关系:
2 k 2^k 2k-1>=n+k

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

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

相关文章

MT2046 巨大的错误

1.暴力代码 2/10 #include <bits/stdc.h> using namespace std; int n; int a[25]; int b[25]; int ans 0; bool err() {for (int i 1; i < n; i){if (a[i] b[i]){return false;}}return true; } int main() {cin >> n;for (int i 1; i < n; i){a[i] i…

【Mysql数据库进阶01】窗口函数

窗口函数 1 定义2 聚合窗口函数2.1 默认效果/累计效果2.2 前面两行当前一行2.3 前面一行当前一行后面一行 3 排名窗口函数3.1 排名函数3.1.1 排名函数案例 3.2 累积分布 4 取值窗口函数 1 定义 完整的窗口函数定义如下: window_function([expression]) over(partition byorde…

【nnUNetv2进阶】五、nnUNetv2 魔改网络-小试牛刀-加入注意力机制SpatialAttention

nnUNet是一个自适应的深度学习框架&#xff0c;专为医学图像分割任务设计。以下是关于nnUNet的详细解释和特点&#xff1a; 自适应框架&#xff1a;nnUNet能够根据具体的医学图像分割任务自动调整模型结构、训练参数等&#xff0c;从而避免了繁琐的手工调参过程。 自动化流程&a…

H3C交换机ACL部分规则不生效问题

问题描述 H3C交换机ACL部分规则不生效问题 H3C交换机配置ACL后&#xff0c;规则在100左右&#xff0c;约10个接口下调用后&#xff0c;单独 permit 4个指定源、目IP地址的流量。但是只有前2个生效&#xff0c;后边2个相同的配置不生效。 问题原因 ACL性能不够的问题 dis q…

刀具表面上的微结构

刀具表面微结构通常指在刀具表面对特定功能设计的微观纹理&#xff0c;这些纹理可以是沟槽、凹坑、凸起或任何其他形式的微观图案。这些微结构的设计和应用是为了改善刀具的切削性能&#xff0c;减少切削力和切削温度&#xff0c;提高切削效率和精度&#xff0c;同时降低切削液…

前端常见面试题:HTML+CSS

1. title与h1的区别、b与strong的区别、i与em的区别&#xff1f; title与h1的区别&#xff1a; title标签用于定义整个HTML文档的标题&#xff0c;它显示在浏览器窗口的标题栏或者标签页上。每个HTML文档只应该有一个title标签&#xff0c;它对搜索引擎优化&#xff08;SEO&a…

mysql performance schema 实践

参考MySQL调优性能监控之performance schema,做了一些扩展 1 2、哪类SQL的平均响应时间最多 SUM_NO_INDEX_USED>0用来过滤那些没有使用的查询。 SELECT SCHEMA_NAME,DIGEST_TEXT,AVG_TIMER_WAIT,MAX_TIMER_WAIT,SUM_LOCK_TIME,SUM_ERRORS ,SUM_SELECT_FULL_JOIN,SUM_NO_IND…

大规模端云协同智能计算(大小模型端云协同联合学习)

原文作者&#xff1a;上海交通大学 吴帆 0 引言 目前&#xff0c;许多智能技术已经走入人们的日常生活&#xff0c;例如交互式商品推荐、人脸识别、语音识别、体征观测、疾病诊断、智能决策等&#xff0c;这些智能技术在为我们生活带来极大便利的同时&#xff0c;也深刻改变了…

前端开发攻略---实现与ChatGPT同款光标闪烁打字效果。

1、演示 2、实现代码 <!DOCTYPE html> <html lang"ch-ZN"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widt…

Spingbot项目配置mySQL或postgresSQL详解

1&#xff1a;postgresql库: yml文件 探索PostgreSQL&#xff1a;从基础到实践&#xff08;简单实例&#xff09; # PageHelper分页插件 pagehelper:helperDialect: postgresqlreasonable: truesupportMethodsArguments: trueparams: countcountSql# 数据源配置 spring:datas…

SQLite作为应用程序文件格式(二十八)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite数据库中JSON 函数和运算符(二十七) 下一篇&#xff1a;SQLite—系列文章目录 摘要 具有定义架构的 SQLite 数据库文件 通常是一种出色的应用程序文件格式。 以下是十几个原因&#xff1a; 简化的应用程序开发单文…

web安全学习笔记(9)

记一下第十三课的内容。 准备工作&#xff1a;在根目录下创建template目录&#xff0c;将login.html放入其中&#xff0c;在该目录下新建一个reg.html。在根目录下创建一个function.php 一、函数声明与传参 PHP中的函数定义和其他语言基本上是相同的。我们编辑function.php …

机器学习引领金融革命:重塑金融服务领域新格局,开启智能化新篇章

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

element-ui报表合计逻辑踩坑

element-ui报表合计逻辑踩坑 1.快速实现一个合计 ​ Element UI所提供的el-table中提供了方便快捷的合计逻辑实现&#xff1a; ​ https://element.eleme.cn/#/zh-CN/component/table ​ 此实现方法在官方文档中介绍详细&#xff0c;此处不多赘述。 ​ 这里需要注意&#x…

【C语言】万字讲解函数栈帧的创建与销毁

目录 前言 一、什么是函数栈帧&#xff1f; 二、理解函数栈帧能解决什么问题呢 三、函数栈帧的创建和销毁解析 3.1 什么是栈&#xff1f; 3.2 认识相关寄存器和汇编指令 3.3 剖析函数栈帧的创建和销毁 3.3.1 esp寄存器与ebp寄存器的重要性 3.3.2 函数的调用堆栈 3.3.…

SAP MRP-MD01与MRP LIVE-MD01N简介

自从SAP推出HANA以后,无论在做项目还是在面试的时候都会遇到一个问题,就是MRP和MRP LIVE 有什么区别。通常顾问都知道MRPLIVE是运行在内存中的,运行效率会优于传统的MRP。经历了很多家的公司都是HANA的系统,基本都很少会用到MRP LIVE,百分之98%都还是在用传统的MRP在跑物料…

利用 Python 开发手机 App 实战

Python语言虽然很万能&#xff0c;但用它来开发app还是显得有点不对路&#xff0c;因此用Python开发的app应当是作为编码练习、或者自娱自乐所用&#xff0c;加上目前这方面的模块还不是特别成熟&#xff0c;bug比较多&#xff0c;总而言之&#xff0c;劝君莫轻入。 准备工作 …

c++的学习之路:24、 二叉搜索树概念

摘要 本章主要是讲一下二叉搜索树的实现 目录 摘要 一、二叉搜索树概念 二、 二叉搜索树操作 1、二叉搜索树的查找 2、二叉搜索树的插入 3、二叉搜索树的删除 三、二叉搜索树的实现 1、插入 2、中序遍历 3、删除 4、查找 四、二叉搜索树的递归实现 1、插入 2、删…

Leetcode刷题之合并两个有序数组

Leetcode刷题之合并两个有序数组 一、题目描述二、题目解析 一、题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数…

去哪网拿去花不能提现,只能用于透支消费,那么拿去花提现是怎么实现呢?

去哪网拿去花不能提现&#xff0c;只能用于透支消费&#xff0c;那么拿去花提现是怎么实现呢&#xff1f; 申请携程拿去花之后&#xff0c;有一些人就会想着把钱提现出来拿去用。一般来说&#xff0c;他们都是通过线下门店来提现拿去花&#xff0c;拿去花允许用户先消费后付款&…