深入理解计算机操作系统学习笔记(1)
2014-05-19 21:49
218 查看
关于布尔代数:
布尔代数中的~,^,|,&分别对应于逻辑运算中的非,异或,或,且运算。
逻辑运算和C语言中的位运算是不同的:逻辑运算和位运算是不同的,尽管他们都用了布尔代数。逻辑运算默认非零的均为1,任何控制和零值都是零,也就是真和假,并且逻辑运算具有短路性。这两个特性在位运算中是没有的~
移位运算:
左移位:从左至右结合,丢弃最高位,并在后面补零
右移位:
1,逻辑右移:在高位补零
2,算数右移: 在高位补最高位的有效值
在C中,对于无符号数的右移必须是逻辑的,而对有符号数一般来说都是算数右移。移位的数量尽量要小于字长。
补码从位向量到整数的映射:
利用的是位权相乘的形式,只不过因为最高位的符号位是1表示的是负数,那么在位权相加的时候,最高位也要乘负权。
关于强制类型转换:
一个数值,无论是利用小端法还是大端法储存在内存中,他们的位表示是不变的。强制类型转换,并不改变数字在内存中本身的位表示,而是改变了对这些位的解释方式。比如,负数补码的权重变成了负数而不是正数。有符号和无符号数值之间的转化也是一样的。但是前提是,转换的数字的字长必须都相同。
某一个有符号数与某一个无符号数肯定会对应一个唯一的位表示。
如果运算中出现了有符号数和无符号数两种,那么会强制转化为无符号数进行运算。都为非负数。
布尔代数中的~,^,|,&分别对应于逻辑运算中的非,异或,或,且运算。
逻辑运算和C语言中的位运算是不同的:逻辑运算和位运算是不同的,尽管他们都用了布尔代数。逻辑运算默认非零的均为1,任何控制和零值都是零,也就是真和假,并且逻辑运算具有短路性。这两个特性在位运算中是没有的~
移位运算:
左移位:从左至右结合,丢弃最高位,并在后面补零
右移位:
1,逻辑右移:在高位补零
2,算数右移: 在高位补最高位的有效值
在C中,对于无符号数的右移必须是逻辑的,而对有符号数一般来说都是算数右移。移位的数量尽量要小于字长。
补码从位向量到整数的映射:
利用的是位权相乘的形式,只不过因为最高位的符号位是1表示的是负数,那么在位权相加的时候,最高位也要乘负权。
关于强制类型转换:
一个数值,无论是利用小端法还是大端法储存在内存中,他们的位表示是不变的。强制类型转换,并不改变数字在内存中本身的位表示,而是改变了对这些位的解释方式。比如,负数补码的权重变成了负数而不是正数。有符号和无符号数值之间的转化也是一样的。但是前提是,转换的数字的字长必须都相同。
某一个有符号数与某一个无符号数肯定会对应一个唯一的位表示。
如果运算中出现了有符号数和无符号数两种,那么会强制转化为无符号数进行运算。都为非负数。
相关文章推荐
- 深入理解计算机网络学习笔记--TCP
- 学习笔记——深入理解计算机系统——启动
- 深入理解计算机操作系统(笔记)
- 深入理解计算机系统(第二章学习笔记)
- 深入理解计算机系统 chapter 9 学习笔记
- [深入理解计算机系统 学习笔记] 01 系统漫游
- 深入理解计算机系统学习笔记(二)之程序优化
- 深入理解计算机系统学习笔记(一)之此书简介
- 深入理解计算机网络—学习笔记一
- 深入理解计算机操作系统(笔记)
- 深入理解计算机系统学习笔记(三)之C语言常见的与存储器(内存)有关的错误
- CSAPP深入理解计算机系统第二章学习笔记(1)
- 深入理解计算机系统(第一章学习笔记)
- 7、深入理解计算机系统笔记:存储器层次结构,存储技术(2)
- 深入理解计算机操作系统(随记 比较混乱中,最好别浪费时间看)
- 6、深入理解计算机系统笔记:存储器层次结构,存储技术(1)
- 深入理解计算机系统学习记录(一)
- 9、深入理解计算机系统笔记:存储器层次结构,高速缓存存储器(1)
- 3、深入理解计算机系统笔记:程序的机器级表示
- 10、深入理解计算机系统笔记:存储器层次结构,高速缓存存储器(2)