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
反码
l 对于正数,反码与原码相同
l 对于负数,符号位不变,其它部分取反(1变0,0变1)
补码
在计算机系统中,数值一律用补码来存储。
补码特点:
l 对于正数,原码、反码、补码相同
l 对于负数,其补码为它的反码加1
l 补码符号位不动,其他位求反,最后整个数加1,得到原码
在计算机系统中,数值一律用补码来存储,主要原因是:
l 统一了零的编码
l 将符号位和其它位统一处理
l 将减法运算转变为加法运算
l 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃
有符号和无符号整型取值范围
运算符优先级
预处理: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) |
相关文章推荐
- Java面向对象主要知识点总结以及简单项目心得
- 【学习ios之路:C语言】总结整理:学好Object-C---C语言必备知识点
- C语言数组知识点总结
- C语言 ---- 循环分支 iOS学习-----细碎知识点总结
- C语言简单使用动态库总结
- C语言常见易忘知识点总结
- Ajax Json 知识点简单总结
- Oracle 11g 第一章知识点总结——数据库简介 简单查询
- C语言操作符简单总结
- JS知识点简单总结
- SpringMVC入门级知识点简单总结
- 【C】C语言核心知识点总结(Reference Manual)
- C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结
- C语言零碎知识点总结(结构体)
- Mysql最简单(常用)的知识点总结:
- Linux简单常用知识点总结
- C语言总结 — 知识点导论图
- VC简单入门系列实验及知识点总结
- XPath知识点简单总结(思维导图)
- 【C语言简单说】三:变量总结ASCII码扩展(5)