深入理解计算机系统(二)--信息的表示和处理

一、信息的表示
现代计算机中的信息都是使用二进制的数字进行表示,通常来说,单个的位不是非常有用,但是当把位组合在一起,再加上某种解释,就能够表示任何有限集合的元素。
三种重要的数字表示:
1、无符号编码
基于传统的二进制表示法,表示大于或者等于零的数字。

2、补码编码
表示有符号整数的最常见的方式,有符号整数就是可以为正或者为负的数字

3、浮点数编码
表示实数的科学记数法的以2为基数的版本。

计算机的表示法是用有限数量的位来对一个数字编码,因此当结果太大时以至于不能表示时,某些运算就会溢出。整数运算和浮点数运算会有不同的数学属性是因为它们处理数字表示有限性的方式不同----虽然整数的表示只能编码一个相对较小的数值范围,但是这种表示是正确的;而浮点数虽然可以编码一个较大的数值范围,但是这种表示只是近似的。

二、信息的存储
大部分计算机中使用8位的块(也就是字节)作为最小的内存单位,而不会单独访问内存中的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存。内存中的每个字节都由一个唯一的数字来标识,称为它的地址,所有可能地址的集合就称为虚拟地址空间。
每个程序对象可以简单的视为一个字节块,而程序本身就是一个字节序列。
1、十六进制表示法
二进制、十进制表示法对于描述位模式来说都不是非常方便。二进制表示法太长,十进制表示法则与位模式的互相转化比较麻烦。替代方法则是使用十六进制。,来表示位模式。

2、字数据大小
每台计算机都有一个字长,指明指针数据的标称大小,其实就是计算机是32位还是64位。32位字长限制虚拟地址空间为4GB。

三、寻址和字节顺序
对于跨越多字节的程序对象,有以下两个规则:
1、程序对象的地址是啥?
2、在内存中如何排列这些字节?
在计算机中,多字节对象被存储为连续的字节序列,对象的地址则为所使用字节中最小的地址。

四、表示字符串
每个字符都由某个标准编码来表示,不同的机器类型使用不同的且不兼容的指令和编码方式,即使是完全一样的进程,运行在不同的操作系统上也会有不同的编码规则,因此二进制代码是不兼容的。二进制代码很少能在不同机器和操作系统组合之间移植。
计算机系统的一个基本概念就是,从机器的角度来看,程序仅仅只是字节序列。机器没有关于原始源程序的任何信息,除了可能有些用来帮助调试的辅助表以外。

 

猜你喜欢

转载自www.cnblogs.com/alimayun/p/9508887.html
今日推荐