CSAPP:信息存储小结
最小可寻址的内存单位:字节(byte),包含8个二进制位(bit)。机器级程序将内存视为一个巨大的字节数组,内存的每个字节都有一个唯一数字标识,称为地址(address),所有地址的集合称为虚拟地址空间,展现给机器级程序。这实现了硬件到软件的第一步封装:程序无需关注虚拟内存的实现细节,而只需要通过访问地址来使用他们即可。
十六进制表示法:二进制太冗长,十进制转换太麻烦。一个字节用十六进制可表示为0016-FF16。以0x或0X开头的值被认为是十六进制,在十六进制中不区分字母大小写。
每台计算机都有字长,指明指针数据的标称大小,体现了虚拟地址的编码长度,也就限定了程序能访问字节的范围。(32位,64位机器就是这样来的,这一升级允许了程序访问大量数据)
固定的数据类型大小对程序的可移植性有着至关重要的意义。
寻址与字节顺序:对于多字节的变量,其占用的字节基本上是连续的,指向它的指针中存放的是其首字节地址,排列方式有两种:大端法与小端法,根据最高/最低有效字节在前决定。大端法是我们通常阅读的顺序。
使用sizeof()代替具体对象字节数也能提高可移植性。
字符串表示:
字符集:ASCII(128)->ASCII扩展(256,GB2312,GBK等),Unicode
编码方案:UTF-8,UTF-16等
布尔运算:与&、或|、非~、异或^,可以扩展到位向量的运算,并对应集合编码。
逻辑运算:与&&、或||、非!、逻辑运算具有短路性,有可能不会计算后一个表达式。
移位运算:在每个字节进行,左结合,左移位右端用0补齐,逻辑右移左端用0补齐,算术右移左端用原最高有效位补齐。对有符号数,右移一般为算术右移,对无符号数,必须为逻辑右移。需要注意,如果移位超过一个字节长度(8),将会mod8。移位运算优先级在加减法和逻辑运算符之间。
原文地址:https://www.cnblogs.com/Philematology/p/15304682.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法