深入理解计算机系统学习笔记--信息的表示和处理-2.1信息存储

第一次记录自己的学习历程,希望能够坚持下去
我所参考的资料是第三版深入理解计算机系统中文译本以及CMU的经典课程CSAPP
第二章的内容基本是之前计算机组成的知识,通过书本和视频学习,有了很多很惊喜的发现

信息存储

前面最重要的内容就是二进制表示,二进制表示起来简单,很容易地被表示,存储和传输。而且能够很好的表示机器开关状态。
主要是研究数字的三种表示:无符号数,补码和浮点数。
表示法有多种,日常生活中使用的是十进制,也就是逢十进一,在计算机中,常用十六进制,八进制,二进制。十六进制,二进制,八进制之间的转换也比较简单。
字数据大小:字长决定的最重要的系统参数就是虚拟地址空间的大小,对于一个字长为w位的机器来说,虚拟地址的范围就是0到 2^w。
字节顺序是分为两种,一种是大端法,另一种是小端法,大多数是采用小端法:
在这里插入图片描述老师在课上举的例子,很好理解,大端就是从低位开始存储,小端无非就是反过来(通俗理解),书本上原内容就是最低或者最高有效字节在前面的方式。
在这里插入图片描述

真实的机器运行结果,可以明显看出sun是大端法
字符串的表示:被编码为一个以null字符结尾的字符数组,这也是其余单个字符不同的地方
布尔代数:主要逻辑运算:NOT(~),AND(&),OR(|),EXCLUSIVE-OR(^),可以将布尔运算扩展到位向量的运算,变成两个01表示位向量之间的运算。
C语言的位级运算:按位进行布尔运算,确定一个位级表达式的最好办法就是将十六进制的参数扩展成二进制表示并执行二进制计算,然后再转换成十六进制。
最常见的用法就是掩码运算,比如0xff最低8位为1,位级运算x&0xff生成一个由x的最低有效字节组成的值,其他字节被置为0。
C语言的逻辑运算:C语言提供的逻辑运算符:&&,||,!
&和&& ***这里其实也能够看出&和&&的区别,&&是有短路的功能的,区别就是&是位运算符,&&是逻辑运算法符。&&运算符在左侧表达式为 false 时,不会再执行运算,从而提高运算速度,也就是短路功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值