深入理解计算机系统
JQ210245253
****************************************************
展开
-
深入理解计算机系统-chapter2.1-----信息的存储表示
前面我们介绍了《深入理解计算机系统》第一章的内容----计算机系统漫游。包括简单介绍了 Hello World 程序在计算机中是如何运行的,存储设备的层次结构以及操作系统的抽象概念。第一章的内容只是对很多概念有个简单了解,所以还是不懂的话也不要紧,后面都会对这些概念进行深入的探究。而这一章我们将介绍《深入理解计算机系统》第二章----信息的表示和处理。 程序=数据结构+算法,所以了解数据结...转载 2019-04-23 20:42:11 · 248 阅读 · 0 评论 -
深入理解计算机系统chapter3.1-----汇编语言和机器语言
《深入理解计算机系统》第三章——程序的机器级表示。作者首先讲解了汇编代码和机器代码的关系,阐述了汇编承上启下的作用;接着从机器语言IA32着手,分别讲述了如何存储数据、如何访问数据、如何完成运算以及如何进行跳转。通过这些步骤,又告诉了我们分支语句、循环语句是怎么完成的,函数调用、栈帧结构以及递归过程。最后能通过编译器产生的汇编代码表示,我们要了解编译器和它的优化能力,知道编译器能为我们完成哪些工...转载 2019-04-23 21:46:29 · 361 阅读 · 0 评论 -
深入理解计算机系统chapter2.8------浮点数舍入以及运算
上一篇博客我们讲解了二进制小数如何表示以及IEEE浮点标准。而且我们也提到过因为这种表示方法限制了浮点数的范围和精度,浮点数只能近似的表示一个数。 比如 数字1/5,我们能用十进制小数 0.2 准确的表示,但是我们却不能把它准确的表示为一个二进制小数,我们只能通过增加二进制表示的长度来提高表示的精度。如下: 那我们该怎么办呢?1、舍入 对于不能精确...转载 2019-04-23 21:06:13 · 248 阅读 · 0 评论 -
深入理解计算机系统chapter2.7-----二进制小数和IEEE浮点标准
整数的表示和运算我们已经讲完了,在实际应用中,整数能够解决我们大部分问题。但是某些需要精确表示的数,比如某件商品的价格,某两地之间的距离等等,我们如果用整数表示将会有很大的出入,这时候浮点数就产生了。 在 20世纪80年代以前,每个计算机厂商都设计了自己表示浮点数的规则,以及对浮点数执行运算的细节,这对于应用程序在不同机器上的移植造成了巨大的困难。而在这之后,也就是 1985年左右,IEE...转载 2019-04-23 21:04:31 · 283 阅读 · 0 评论 -
深入理解计算机系统chapter2.6-整数的运算
前面两篇博客我们详细讲解了计算机中整数的表示,包括有符号和无符号(补码编码)的详细介绍。那么这篇博客我们将对它们的运算有个详细的了解。 在讲解之前首先看下面的一个程序,看看输出结果是啥? 1 2 3 4 5 6 7 8 9 #include <stdio.h> i...转载 2019-04-23 21:02:15 · 329 阅读 · 0 评论 -
深入理解计算机系统chapter2.5---c语言中的有符号数和无符号数以及扩展和截断数字
1、C语言中的有符号数和无符号数 上一篇博客我们给出了C语言中在32位机器和64位机器中支持的整型类型数据,我们这里只给出32位机器上的: 尽管 C 语言标准没有指定有符号数要采用某种编码表示,但是几乎所有的机器都使用补码。通常大多数数字是默认有符号的,比如当声明一个像12345或者0xABC这样的常量的时候,这个值就被认为是有符号的。 C 语言允许有符号数和无符号数之...转载 2019-04-23 20:56:44 · 340 阅读 · 1 评论 -
深入理解计算机系统chapter2.4------整数的表示(无符号编码和补码编码)
目录1、什么是整数?2、C 语言中的整型数据类型3、无符号数的编码4、补码编码5、反码和原码6、有符号和无符号数之间的转换1、什么是整数? 整数包含正整数,0,负整数。我们从小的数学常识,整数是无穷无尽的,即整数的大小没有限制。 但是在计算机中则不能这样理解,因为计算机是靠数字信号来表示数,计算机所能处理的整数的长度是由计算机的字长来决定的,所以...转载 2019-04-23 20:54:27 · 552 阅读 · 0 评论 -
深入理解计算机系统chapter2.3----布尔代数以及c语言运算符
1、布尔代数 我们知道二进制值是计算机编码、存储和操作信息的核心,随着计算机的发展,围绕数值0和1的研究已经演化出了丰富的数学知识体系。而布尔代数便是乔治.布尔(George Boole)将逻辑值 True(真)和 False(假)编码为二进制0和1,用来研究逻辑推理的一门数学学科。 对于布尔代数,我们需要知道以下几种常见的运算符: ①、布尔运算 ~ 对应逻辑运算非。也...转载 2019-04-23 20:50:41 · 295 阅读 · 0 评论 -
深入理解计算机系统chapter2.2-----进制间的抓换原理
1、进制的介绍 在讲进制之前,我们先看一下数制的定义:用一组固定的数字和一套统一的规则来表示数目的方法称为数制。 而数制有进位计数制与非进位计数制之分。非进位计数制的数码表示的数值大小与它在数中的位置无关,这里我们不作过多的介绍。 进位计数制的数码所表示的数值大小则与它在数中所处的位置有关,常见的有二进制、十进制、十六进制,我们这里也只介绍这三种进制的转换。 进位计数制的...转载 2019-04-23 20:48:21 · 201 阅读 · 0 评论 -
深入理解计算机系统chapter3.3操作指示符和数据传送指令
目录1、整数寄存器2、操作数指示符3、数据传送指令4、MOV 指令5、MOVS指令 6、MOVZ 指令7、push 和 pop 指令在上一篇博客程序编码以及数据格式中我们给出了一个简单的C程序,然后编译成了汇编代码。大家看不懂没关系,后面的博客我们将逐渐揭开一些汇编指令的神秘面纱。本篇博客我们将对操作数指示符和数据传送指令进行详细的介绍。...转载 2019-04-24 07:33:15 · 746 阅读 · 1 评论 -
深入理解计算机系统-----3.2程序编码和数据格式
目录1、机器级代码2、程序存储器3、程序示例4、数据格式 在进行本章的讲解之前,我们先说明讲解的机器语言型号。上一篇汇编语言和机器语言我们讲过,机器语言是直接面向处理器(Processor:CPU)的程序设计语言,但是每一种这样的微处理器(CPU)由于硬件设计和内部结构的不同,所以每一种微处理器都有自己的机器指令集,也就是机器语言。而汇编语言是便于记忆的机器语言。本系列博客将...转载 2019-04-23 21:49:58 · 589 阅读 · 0 评论