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

C语言简单知识点总结

2017-07-19 16:12 316 查看
gcc编译过程

预处理:gcc -E hello.c -o hello.i

预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
编  译:gcc -S hello.i -o hello.s

编译:检查语法,将预处理后文件编译生成汇编文件

汇  编:gcc -c hello.s -o hello.o

汇编:将汇编文件生成目标文件(二进制文件)

链  接:gcc    hello.o -o hello_elf

链接:C语言写的程序是需要依赖各种库的,所以编之后还需要把库链接到最终的可执行程序中去

原码

一个数的原码(原始的二进制码)有如下特点:

l 最高位做为符号位,0表示正,为1表示负

l 其它数值部分就是数值本身绝对值的二进制数

l 负数的原码是在其绝对值的基础上,最高位变为1

十进制数
原码
+15
0000 1111
-15
1000 1111
+0
0000 0000
-0
1000 0000
反码
l 对于正数,反码与原码相同

l 对于负数,符号位不变,其它部分取反(1变0,0变1)

十进制数
反码
+15
0000 1111
-15
1111 0000
+0
0000 0000
-0
1111 1111
 

补码

在计算机系统中,数值一律用补码来存储。

补码特点:

l 对于正数,原码、反码、补码相同

l 对于负数,其补码为它的反码加1

l 补码符号位不动,其他位求反,最后整个数加1,得到原码

十进制数
补码
+15
0000 1111
-15
1111 0001
+0
0000 0000
-0
0000 0000
 

在计算机系统中,数值一律用补码来存储,主要原因是:

l 统一了零的编码

l 将符号位和其它位统一处理

l 将减法运算转变为加法运算

l 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

有符号和无符号整型取值范围

数据类型
占用空间
取值范围
short

2字节
-32768 到 32767 (-215 ~ 215-1)

int

4字节
-2147483648 到 2147483647 (-231 ~ 231-1)

long

4字节
-2147483648 到 2147483647 (-231 ~ 231-1)

unsigned short

2字节
0 到 65535 (0 ~ 216-1)

unsigned int

4字节
0 到 4294967295 (0 ~ 232-1)

unsigned long

4字节
0 到 4294967295 (0 ~ 232-1)

运算符优先级

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: