【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示

2023-09-17 21:53:25

2.1 无符号数和有符号数

2.1.1 无符号数

没有符号的数,其实就是非负数。在计算机中用字节码表示,目前最常用的是八位和十六位的。

2.1.2 有符号数

将正负符号数字化,0代表 + ,1代表 - ,并把代表符号的数字放在有效数字前,就组成了有符号数。

1. 机器数和真值

我们接下来要用到的真值都指的是带符号的二进制数

机器数是相对于真值而言的,下面要讲的原码、补码、反码和移码都属于机器数。

2. 原码表示法

原码,顾名思义,是机器数最原本的表示方法,原码包括两个部分,符号位和数值位,符号位用0和1代表这个数的正负,数值位就是真值的绝对值。

为了区别用原码表示的整数和小数,整数的符号位和数值位用逗号隔开,小数的则用小数点隔开。

原码的优点:表示简单,易于和真值转换

原码的定义 -- 整数

原码的定义 -- 小数

原码可以表示的小数范围在-1和1之间,其他带小数的数可以用整数+小数这样的组合来表示。

例题

注意,在由原码求真值的题目中,若结果为正,那也得加一个 + 号

3. 补码表示法

补的概念

取模为12的时候,+2等价于-10,-4等价于+8,+3等价于+15等价于+27。

在上面的例子里,-10的补数为+2,-4的补数为+8。并且正数的补数是其本身

由此可以知道,只要确定了模,就可以为任何一个负数找到与其对应的正数,也就是补数,这样就方便进行运算,在对含有负数的式子进行加法运算时,可以先将负数取补数,最后取模即可。

补的结论

补码的定义 -- 整数

补码的定义 -- 小数

用补码表示负的小数时,因为符号位要为1,所以应该模2,也就是用2减去真值,这样得到的结果里,符号位一定为1,数值位即为真值的补数。

要注意,2也得用二进制来表示!

变形补码 -- 双符号位补码

求补码的快捷方式

对正数来说,补码就是符号位加上真值本身,简单易求;

对负数来说,求补码则有快捷方式:

总而言之,就是符号位不变,数值位取反,末尾加一

4. 反码表示法

反码通常是基于上面原码与补码转换的快捷方式,所需要的中间过渡

由于正数不需要快捷方式,所以反码还是和原码补码一样,只有符号位和真值不同。

只有负数需要将全体数值位转换为相反的数。

反码的定义 -- 整数

反码的定义 -- 小数

例题

5. 移码表示法

用原码和补码时很难一眼比出两个数的大小,这时候就需要使用移码了。

移码的定义

移码的特点

同一个真值的移码和补码只差一个符号位。

作业题知识点补充

1. 分数转换为二进制数

29/128 为例:

第一步

把分子和分母都转换为二进制,要表示为2的多少次。
那么分子表示为:2^4+2^3+2^2+2^0
那么分母呢:2^7
继续将他们写成分数形式:(2^4+2^3+2^2+2^0)/2^7。

接下来计算就好了,结果为:2^-3+2^-4+2^-5+2^-7。

第二步

讲一个小知识点:对于二进制数左移是放大2倍,右移是缩小2倍
那么对于二进制1,我们右移得到0.1,缩小2倍。所以0.1代表1/2,即2-1。同理,0.01就是1/4,即2-2,以此类推。

有了这个基础,再看看上面的式子,不就是0.001+0.0001+0.000 01+0.000 0001。
用二进制加法计算出最后结果,即0.001 1101。

2. 无原码的特殊情况

补码为1.0000的真值为-1,但是没有原码,因为小数原码的范围如下:


可知,小数1和-1都没有原码

补码为1,0000的真值为-16,但也没有原码,因为整数原码的范围如下:

当数值位有四位时,原码的取值只能小于+16。

3. 十六进制转换为二进制

每个十六进制数都代表四位二进制数,所以直接按位置转换即可。

0 ~ 9 都可以当成十进制数化为二进制数,只是不足的要补足至四位,而剩下的则如下表所示:

十六进制十进制二进制
A101010
B111011
C121100
D131101
E141110
F151111

2.2 数的定点表示和浮点表示

2.1.1 定点表示

2.1.2 浮点表示

规格化数:浮点数的尾数以1开头,例如0.110101。

1. 浮点数的表示形式

2. 浮点数的表示范围

3. 浮点数的规范化

2.2.3 定点数和浮点数的比较

  • 当浮点机与定点机中的数其位数相同时,浮点数的表示范围比定点数大得多。(浮点机和定点记中的数都表示为机器数)
  • 当浮点数为规格化数时,其精度远高于定点数。
  • 浮点数运算分阶码和尾数部分,而且运算结果要求规格化。
  • 在溢出的判断方法上,浮点数是对规格化的阶码进行判断,而定点数是对数值本身进行判断。
更多推荐

JVM:常见的垃圾回收算法

常见的垃圾回收算法分代收集理论当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(GenerationalCollection)[1]的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则。1)经验法则1:绝大多数对象都是朝生夕灭的。2)经验法则2:熬过越多次垃圾收集过程的对象就越难以消亡

BD就业复习第二天

Hbase1.架构HBase(HadoopDatabase)是一个开源的分布式、面向列族(ColumnFamily)的NoSQL数据库,它是构建在Hadoop之上的。HBase的架构设计旨在处理大规模的数据,特别适用于需要快速读写和随机访问大量数据的应用场景,如日志处理、在线实时分析等。下面是HBase的详细架构解析:

POI的读取EXCEL的【总结】

POI的读取EXcel的总结最近的自己在做了一些关于EXcel的导入工作,正好总结一下我用到一些知识点我首先说用到的方法POI读取指定行列的方法语法:sheet.getRow(x):获取第x行sheet.getRow(x).getCell(y):获取第x行第y列eg:sheet.getRow(5).getCell(2)

Redis的缓存雪崩、缓存穿透、缓存击穿

1.redis的优点高性能:redis是基于内存的数据库,数据存储在RAM中,读写速度很快数据持久化:能够将内存中的数据保存咋磁盘上,防止数据丢失;两种持久化方式:快照和日志追加形式简单丰富:支持丰富的数据类型和易于使用的API2.redis的缺点内存限制:redis存储在内存中,因此受可用内存大小的限制单线程模型:r

Vue中的深度监听(Deep Watch):详细解析与实际示例

Vue中的深度监听(DeepWatch):详细解析与实际示例Vue.js是一款流行的前端JavaScript框架,其响应式系统是其核心特性之一。通过响应式系统,Vue允许开发者轻松地监听数据的变化并对其做出响应。在某些情况下,你可能需要对嵌套的数据结构进行深度监听,以便在任何级别的数据变化时触发相应的操作。本文将深入探

HTML5 Canvas动画实例

在开发在线游戏时,绘制动画是非常重要的。本文介绍一个使用CanvasAPI实现的动画实例——游戏人物的跑步动画。01、动画的概念及原理1、动画动画是通过一幅幅静止的、内容不同的画面(即帧)快速播放来呈现的,使人们在视觉上产生动的感觉。这是利用了人类眼睛的视觉暂留原理。利用人的这种生理特性可制作出具有高度想象力和表现力的

Matlab论文插图绘制模板第115期—带Latex公式的图

之前的文章中,分享了Matlab带线标记的图:带阴影标记的图:带箭头标记的图:带图形标记的图:进一步,分享一下带Latex公式的图,先来看一下成品效果:特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式。模板中最关键

代码随想录算法训练营第三十七天|738.单调递增的数字 968.监控二叉树 总结

738.单调递增的数字代码随想录例如:98,一旦出现strNum[i-1]>strNum[i]的情况(非单调递增),首先想让strNum[i-1]--,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。从前向后遍历的话,遇到strNum[i-1]>strNum[i]的情况,让strNu

openjdk和oracle jdk的区别

OpenJDK和OracleJDK都是JavaDevelopmentKit(JDK)的不同实现,用于开发和运行Java应用程序。它们有一些区别,但也有很多相似之处。以下是它们之间的主要区别:开源性质:OpenJDK是开源的,由一个社区维护和开发,它的源代码可以在OpenJDK项目的网站上找到。这意味着任何人都可以免费获

Haproxy集群调度器与部署

目录一、Haproxy介绍:1.Haproxy应用分析:2.Haproxy的特性:3.Haproxy常见的调度算法:4.LVS、Nginx、HAproxy的区别:4.1Haproxy与lvs对比:4.2Haproxy与nginx对比:5.Haproxy优点:二、Haproxy部署:1.配置Haproxy负载调度器:1.

【Spring】Spring的手动实现

🎄欢迎来到@边境矢梦°的csdn博文🎄🎄本文主要梳理手动实现Spring底层机制🎄🌈我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生🌈🎆喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路🎆Ps:月亮越亮说明知识点越重要(重要性或者难度越大)🌑🌒🌓🌔🌕目录实现任务阶段1-编写自己Spring

热文推荐