C++笔记:4
2016-03-01 10:59
141 查看
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。
正整数的补码是其二进制表示,与原码相同.
求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1。-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011)
UNIX系统代码段和数据段分开的目的:
1)防止程序指令被修改,设置代码段权限为只读,设置数据段权限为可读写
2)代码段和数据段分开有利于提高程序的局部性,现代CPU缓存一般设计为数据缓存和指令缓存分离,指令和数据分开存放可以提高CPU缓存命中率。
3)共享指令,当系统运行多个程序的副本时,它们指令是一样的,因此内存只需保存一份程序的指令代码。每个副本进程的数据区是进程私有,可以节省内存。
在UNIX中,$$、$@、$#以及$*的含义分别如下:
$$表示当前命令的进程标识数。
$*表示所有位置参量,例如$1、$2等。
$@与$类似,但当用双引号进行转义时,”$@”能够分解多个参数,而”$“合并成一个参数。
$#包括位置参数的个数,但是不包括命令名。
在计算机系统中,数值一律用补码来表示和存储。
正整数的补码是其二进制表示,与原码相同.
求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1。-5对应正数5(00000101)→所有位取反(11111010)→加1(11111011)
UNIX系统代码段和数据段分开的目的:
1)防止程序指令被修改,设置代码段权限为只读,设置数据段权限为可读写
2)代码段和数据段分开有利于提高程序的局部性,现代CPU缓存一般设计为数据缓存和指令缓存分离,指令和数据分开存放可以提高CPU缓存命中率。
3)共享指令,当系统运行多个程序的副本时,它们指令是一样的,因此内存只需保存一份程序的指令代码。每个副本进程的数据区是进程私有,可以节省内存。
在UNIX中,$$、$@、$#以及$*的含义分别如下:
$$表示当前命令的进程标识数。
$*表示所有位置参量,例如$1、$2等。
$@与$类似,但当用双引号进行转义时,”$@”能够分解多个参数,而”$“合并成一个参数。
$#包括位置参数的个数,但是不包括命令名。
相关文章推荐
- C++经典面试算法题
- c++实验-编程序,输入两个整数a和b,输出它们的和及差
- C/C++冒泡排序,然后二分法搜索寻值
- 面试中的C++常见问题
- C++中sort()及qsort() (不完整介绍)
- C/C++中函数参数传递详解
- OC语言-runtime
- STL Vector remove()和erase()的使用
- c++ 11 lamda表达式
- C++中erase函数的使用,可以用来删除内存擦除
- C++项目中的extern "C" {}
- sift算法c语言实现
- 1082. Read Number in Chinese (25)
- OC语言-block and delegate
- 易出错的C语言题目之二:指针
- 在Ti的DSP程序中使用C++编程
- C++第1次实验
- c++编辑报告
- 数字转化成字符串C语言
- C++语言-06-文件操作