摘要:
@ 一、引子 上个小节中,我们学习了浮点数的基本构成还有原理,浮点数大致上分为阶码、还有尾数这样的两个部分。上个小节的末尾我们提到过,如果不能确定一个统一的规则,阶码占多少位,尾数占多少位,各自采用原码、补码,还是移码来表示。 如果我们不能统一一个规则,那么在计算机之间进行数据传输,就会出现一些解析 阅读全文
摘要:
@ 一、引子 通过之前几个小节的学习,我们已经知道了定点数怎么在计算机里表示,包括定点整数和定点小数。 从这个小节开始,我们要学习浮点数在计算机里的表示和运算。这个小结中,我们先介绍浮点数如何表示。 我们会介绍浮点数它有什么作用,还有一个基本的原理。另外,考试中常考的一个问题是浮点数的规格化。最后, 阅读全文
摘要:
@ 在这个小结中,我们要探讨的是数据的存储和排列。 一、大小端模式 首先来看一个之前提到过的问题,叫做大小端模式。我们在内存里经常会存储某一些多字节的数据,比如 c 语言里的 Int 型变量,在很多时候占 4 个字节。 我们用 16 进制的方式把 4 个字节的内容给描述出来。 最左边01这个部分我们 阅读全文
摘要:
@ 这个小结我们要探讨一个相对来说简单的问题,就是 c 语言里边的那些定点整数是如何进行强制类型转换的。 一、案例一 来看这样的一个例子。 首先需要跟大家声明的是, c 语言当中的定点整数,大家熟悉的什么 Int 还有什么 short 还有long,这些定点整数都是用补码的形式来存储的。 另外, c 阅读全文
摘要:
@ 一、介绍 之前的小结中我们探讨了定点数的原码和补码的乘法如何实现。 这个小结,我们要来探讨定点数的除法运算如何实现。 首先我们会介绍除法运算的思想,接下来会介绍原码的两种除法实现方法,一种叫恢复余数法,一种叫不恢复余数法,又叫加减交替法。然后,我们又会介绍补码的除法,同样也是采用加减交替法的思想 阅读全文
摘要:
@ 一、原码乘法运算 经过之前小节的学习,我们已经知道了定点数的加法、减法,还有移位运算如何实现。 这小节中我们要学习定点数的原码乘法如何实现。 这一小节中,我们会首先探讨乘法运算的实现思想,介绍原码的移位乘法如何实现。最后还会介绍补码的一位乘法如何实现。 (1)手算乘法 1.十进制乘法 首先来看一 阅读全文
摘要:
@ 一、引子 这一小节中,我们来学习定点数的移位运算怎么实现。 运算又可以进一步的划分为算数移位、逻辑移位还有循环移位,我们会按从上至下的顺序依次讲解。 二、原码的算数移位 (1)十进制 首先来认识一下什么叫做算数移位。 这里从大家熟悉的十进制数出发,假设这儿有这样的一个十进制数 985. 211。 阅读全文
摘要:
这一小节,我们接着上一小节,来看标志位的生成,对上节课的加法器进行一个补充。 两个 n 比特的数相加,除了得到 n 比特的相加结果之外,加法器还可以输出 4 个标志的信息OF、SF、ZF、CF这四个标志位。 一、OF标志位 (1)介绍 首先来看OF这个标志位的含义,以及如何确定OF的值。 OF它的英 阅读全文
摘要:
@ 一、加法器原理 这一小节,我们来看新考点补码加减运算器。 也就是从硬件的层面来看,补码的加减运算是如何实现的。 (1)介绍 如下图,这是一个基本的加法器,可以实现 A 加 B 等于 F 这样的运算。 其中 A 和 B 分别是 n 个比特的二进制数, F 是 n 个比特的输出结果。 另外右边还有 阅读全文
摘要:
上一小节我们介绍了一些电路的基本知识,并且利用电路的基本知识,在上一小节的末尾设计了一个比较简单的加法器。 这一小节中,我们主要会来探讨这些加法器应该怎么进行改进,使它执行加法的速度更快。 这小节的内容会比较绕,不过这一小节,并不是考试的重点,大家能有个大致的了解就可以了。 首先来看一下上一小节留下 阅读全文