资讯专栏INFORMATION COLUMN

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

YJNldm / 1494人阅读

摘要:写在前面博客主页的江湖背景的江湖背景欢迎关注点赞收藏留言本文由原创,首发首发时间年月日最新更新时间年月日坚持和努力一定能换来诗与远方向未见花闻学习参考书籍深入理解计算机系统作者水平很有限,如果发现错误,请留言轰炸哦万分感谢感谢感谢

?写在前面


  • ?博客主页: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(无符号数必须逻辑右移)

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


·很好的例子

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123729.html

相关文章

  • 深入理解算机系统》·深入浅出·快速理解23完稿

    摘要:写在前面博客主页的江湖背景的江湖背景欢迎关注点赞收藏留言本文由原创,首发首发时间年月日最新更新时间年月日坚持和努力一定能换来诗与远方向未见花闻学习参考书籍深入理解计算机系统作者水平很有限,如果发现错误,请留言轰炸哦万分感谢感谢感谢 ?写在前面 ?博客主页:kikoking的江湖背景?...

    wing324 评论0 收藏0
  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0
  • CSS世界(文档)

    摘要:整理完了高性能这本书,往下就需要快速处理世界,这本讲解特性的书非常值得一读,内容完整,重点突出,实战性强,就是语言啰嗦。由于全书内容太多,而且需要一点一点的整理,所以放到了站点上,方便大家查看。 整理完了《高性能JavaScript》这本书,往下就需要快速处理《CSS世界》,这本讲解CSS特性的书非常值得一读,内容完整,重点突出,实战性强,就是语言啰嗦。由于全书内容太多,而且需要一点一...

    CNZPH 评论0 收藏0
  • 精读《深入浅出Node.js》

    摘要:从社区和过往的经验而言异步编程的难题已经基本解决无论是通过事件还是通过模式或者流程控制库。本章主要介绍了主流的几种异步编程解决方案这是目前中主要使用的方案。最后因为人们总是习惯性地以线性的方式进行思考以致异步编程相对较为难以掌握。 前言 如果你想要深入学习Node,那你不能错过《深入浅出Node.js》这本书,它从不同的视角介绍了 Node 内在的特点和结构。由首章Node 介绍为索引...

    codergarden 评论0 收藏0
  • 后端技术精选 - 收藏集 - 掘金

    摘要:使用签署免费证书后端掘金本文操作在操作系统下完成,需要和超文本传输安全协议英语,缩写,常称为,红黑树深入剖析及实现后端掘金红黑树是平衡二叉查找树的一种。 使用 Lets Encrypt 签署免费 Https 证书 - 后端 - 掘金 本文操作在Linux操作系统下完成,需要Python和Nginx 超文本传输安全协议(英语:Hypertext Transfer Protocol Sec...

    Meils 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<