您的位置:首页 > 编程语言 > C语言/C++

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等。

$@与$类似,但当用双引号进行转义时,”$@”能够分解多个参数,而”$“合并成一个参数。

$#包括位置参数的个数,但是不包括命令名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: