代码改变世界

信息的存储

2011-05-07 16:51  justvi  阅读(173)  评论(0编辑  收藏  举报

1.转换

2.字长:机器的字长指明了整数与指针数据的标称大小,所以32位机long占4字节、指针4字节,而64位下long及指针数据占8字节。虚拟地址是以这样的字长来来编码的,所以32位机器虚拟地址空间大小为4GB

3.寻址与字节序:

        对于跨越多个字节的对象寻址需要确定两个问题:1.对象的地址 2字节如何排列

对于1,对象的地址采用的是对象占据空间中的最小地址

对于2,有两种排列方式:大端法和小端法,大端法中数据的最高有效字节在前而小端法中最低有效字节在前

因为网络上不同的机器之间的字节序可能不同,因此在设计网络应用程序的时候发送方须将数据转换为网络字节序而在接受端将网络字节序转换为自己所采用的字节序

4.布尔代数:

位图一个有效的应用是表示有限集合,位图的|、&、~操作表示集合的并、交与求补

5.位级运算:

智能应用到整数而不能应用到浮点数上是因为浮点数才用了不同的编码方法

6.移位运算:

有逻辑和算法移位之分,通常情况下,左移指的是逻辑左移,丢弃最高的k个位而在最低k位上补0;对大多数编译器而言,对于无符号数采用逻辑右移,丢弃最低k位在最高k位上补0,对于有符号数采用算术右移,丢弃最低k位在高k位上补原编码的最高有效位