深入理解计算机系统(2)——信息存储

1、信息的存储和表示

1.1、信息的存储

​ 什么是信息?信息是客观事物属性的反映,是经过加工处理并对人类客观行为产生影响的数据表现形式。

那么我们这里也要提一下什么是数据,数据是反应客观事物属性的记录,是信息的具体表现形式。任何事物的属性都是通过数据来表示的,数据经过加工处理后成为信息,而信息必须通过数据才能传播,才能对人类产生影响。

例如,数据2、4、6、8、10、12是一组数据,其本身是没有意义的,但对它进行分析后,就可得到一组等差数列,从而很清晰的得到后面的数字。这便对这组数据赋予了意义,称为信息,是有用的数据。

计算机内所有的信息均以二进制的形式表示,也就是由值0和值1组成的序列。大多数计算机使用8位的块,或者说字节("位(bit)"是电子计算机中最小的数据单位,每一位的状态只能是0或1。8个二进制位构成1个"字节(Byte)"),来作为最小的可寻址的存储器单位,而不是在存储器中访问单独的位。

也就是说我们访问计算机最小的单位是八个位构成的字节,而不是值0或值1的单个位。

程序会将存储器视为一个非常大的字节数组,称为虚拟存储器(virtual memory)。存储器的每一个字节都由唯一的数字来标识,也就是我们说的地址(address),所有可能地址的集合称为虚拟地址空间(virtual address space)

1.2、十六进制表示法

​ 一个字节由 8 位组成。在二进制表示法中,它的值域为 00000000——11111111;如果用十进制表示就是0——255。这两种表示法用来描述计算机中的位模式(计算机中所有二进制的0、1代码所组成的数字串)来说都不是很方便。二进制表示法太冗长,而十进制表示法与位模式的互相转化又比较麻烦。这时候 十六进制数产生了,十六进制使用数字‘0’~‘9’,以及字符 ‘A’~'F’来表示16个可能的值。一般是 0x 或者 0X 开头。规则是:借一当十六,逢十六进一。

比如十进制数 175,我们用十六进制表示为 0xAF。

1.2、字数据大小

计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word),一个字通常由一个或多个(一般是字节的整数位)字节构成,字的位数叫做字长(word size),每台计算机都有一个字长,用来指明整数和指针数据的标称大小(nominal size)。由于虚拟地址空间中的地址就是使用一个字来编码的,因此字长决定了系统的虚拟地址空间的最大大小。

通俗来讲:字长是CPU的主要技术指标之一,指的是CPU一次能并行处理的二进制位数,字长总是8的整数倍,通常PC机的字长为16位(早期),32位,64位。

下表列出了各种数据类型对应的字节数:

数据类型 32位编译器 64位编译器
char * 4 8
char 1 1
short 2 2
int 4 4
long 4 8
long long 8 8
float 4 4
double 8 8

1.3、寻址和字节顺序

对于跨越多个字节的程序对象(程序对象指指令、数据或者控制信息等,是程序当中对象的统称)来说,我们需要制定两个规则:

①、这个对象的地址是什么?

②、在存储器中如何排列这些字节?

在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址。

比如:假设一个类型为 int 的变量 x 地址为 0x100,也就是说地址表达式 &x 的值是 0x100,那么,x 的 4 个字节将被存储在存储器的 0x100,0x101,0x102,0x103的位置。

第一个规则解决了,那么第二个规则如何排列呢?采用如下两种方式:

小端法:按照从最低有效字节到最高有效字节的顺序存储对象,也就是最低有效字节在最前面。

大端法:和小端法相反。是按照从最高有效字节到最低有效字节的顺序存储对象,也就是最高有效字节在最前面。

回到上面的变量 x,如果假设 x 的低位字节值到高位字节值分别为 67,45,23,01。那么用大端法和小端法表示分别如下:

由于排列字节的方式有两种,那么这就产生问题了。比如当小端法机器产生的数据被发送到大端法机器或者反方向发送的时候就会发现,接收程序里的字节成了反序。

为了避免这种情况,网络应用程序的代码编写必须遵循已建立的关于字节顺序的规则,以确保发送方机器将它的内部表示转换成网络标准,而接收方机器则将网络标准转换为它的内部表示。

1.4、数据类型

上面我们在讲解第4小点数据大小时,我们给出了 C 语言中很多的数据类型。那么数据类型到底是什么呢?

程序编码中,计算机是不认识我们所定义的数据类型的。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才定义大数据类型,然后编译器编译标记需要申请大内存,就可以充分利用内存。 例如大胖子必须睡双人床,就给他双人床,瘦的人单人床就够了。

那么我们可以根据上面的寻址和字节顺序得出,计算机在解释一个数据类型的值时主要有四个因素:位排列规则(大端或者小端)、起始位置、数据类型的字节数、数据类型的解释方式

对于特定的系统来说,前两种因素都是特定的,而对于后两种因素的改变,则可以改变一个数据类型的值的最终计算结果,这就是强制类型转换。对于大部分高级程序设计语言来讲,都提供了强制类型转换。强制类型转换有时候会让结果变的让人难以预料,所以我们需要慎用。

1.5、字符串的表示

在计算机中,对非数值的文字和其他符号进行处理时,要对文字和符号进行数字化,即用二进制编码来表示文字和符号。其中西文字符最常用到的编码方案有ASCII编码和EBCDIC编码。对于汉字,我国也制定的相应的编码方案,比如 GBK,GB2312等。

比如字符 ‘a’ 的 ASCII 码十进制值为 97,在计算机中用二进制表示就是 01100001

1.6、代码的表示

程序其实就是一个二进制序列的简单描述,编译器会帮我们将其翻译成对应的机器所认识的二进制序列。

2、整数表示

3、整数运算

4、浮点数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容