栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《深入理解计算机系统》·深入浅出·快速理解第2章(3日完稿)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《深入理解计算机系统》·深入浅出·快速理解第2章(3日完稿)

写在前面
  • 博客主页:kikoking的江湖背景
  • 欢迎关注点赞收藏⭐️留言
  • 本文由 kikokingzz 原创,CSDN首发!
  • 首发时间:2021年11月16日
  • 最新更新时间:2021年11月16日
  • ✉️坚持和努力一定能换来诗与远方!(向未见花闻学习)
  • 参考书籍:《深入理解计算机系统》
  • 作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!

✨✨✨我是分割线✨✨✨

2.1信息存储

·大多数计算机采用8bit的字节作为最小的可寻址的内存单位,而不是bit。

所以我们常说的32为机器,其地址为32位,但一个地址序列只存储1字节,注意单位是字节

1.虚拟内存

·机器级程序将内存视为一个非常大的字节数组,所有可能地址的集合就称为虚拟地址空间

2.机器级层面 程序就是字节序列

·C编译器维护数据类型的信息,但是其生成的机器级程序并不包含关于数据类型的信息;每个程序对象被视为一个字节块,程序就变为一个字节序列

✨✨✨我是分割线✨✨✨

2.1.1·采用十六进制数表示位模式

·因为二进制表示法太冗长

·十进制表示法与位模式的互相转化很麻烦

 ·掌握:进制转换

✨✨✨我是分割线✨✨✨

2.1.2·字数据的大小
1.每台计算机都有一个字长(32位机器/64位机器),指明指针数据的标称大小

2.32位字长的内存(虚拟地址空间)为4GB

​​​  由此计算可得32位字长的机器内存位4GB


 3.数据类型的大小

✨✨✨我是分割线✨✨✨

2.1.3寻址和字节顺序
1.多字节对象的地址为所使用字节(内存单元序号)中字节最小的地址


 2.字节顺序

·大端法:最高有效字节在最前面的方式

·小端法:最低有效字节在最前面的方式

 ·双端法:可以配置作为大端或者小端的机器运行

2.1.4表示字符串

1.C语言中字符串被编码为一个以null(其值为0)字符结尾的字符数组

2.每个字符都由某个标准编码来表示,最常见的就是ASCII码

3.文本数据比二进制数据具有更强的平台独立性

·因为在使用ASCII作为字符码的任何系统上都将得到相同的结果,与字节顺序和字节大小无关(即无关大小端机器,输出结果相同)

2.1.5表示代码

·即使是完全一样的进程,运行在不同的操作系统上也会有不同的编码规则;即二进制代码是不兼容的,很少能在不同机器和操作系统间进行移植。

·机器级角度看来,程序只是字节序列,是不知道关于原始源程序的任何信息的

2.1.6布尔代数

·布尔通过将逻辑值 TRUE 和 FALSE 编码为二进制值1和0,设计出布尔代数

·掌握:计算

2.1.7C语言中的位级运算

·C语言支持按位布尔运算


·例题1:如何不应用外部变量来交换向x、y的值

 ·例题2 掩码运算

举例:掩码0xFF(最低的8位为1)表示一个字的低位字节

·位级运算 x&0xFF 生成一个由x最低有效字节组成的值,而其他字节被置为0

·x=0x89ABCDEF     ;   x&0xFF=0x000000EF

我们应当熟练掌握位级运算,在编程时可以大大提高代码的效率

2.1.8C语言中的逻辑运算 

·C语言中还提供来一组逻辑运算符||、&&、! 分别对应于命题逻辑中的OR、AND、NOT运算

·逻辑运算认为所有的非零参数都表示TRUE,而参数0表示FALSE

·它们返回1或者0,分别表示TRUE和FALSE

·短路特性

·如果对第一个参数求值就能确定表达式对结果,那么逻辑运算符就不会对第二个参数求值

·超级好的例题 

2.1.9C语言中的移位运算 
·左移

·(我觉得这段CSAPP讲的没有很难懂,就直接拷贝了)


 ·右移

·逻辑右移:补0(无符号数必须逻辑右移)

·算术右移:补最高位(基本上对有符号数使用算术右移)


·很好的例子

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/528769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号