目录
补充:vscode快捷键
ctrl+d
:复制光标所在的行
shift+del
:删除光标所在的行
alt+上箭头
:将光标所在的行上移一行
alt+下箭头
:将光标所在的行下移一行
ctrl+鼠标点击函数原型
:跳转到函数头文件定义
alt+左箭头
:回退(回退和前进在代码跳转中非常有用,可以帮助我们看一些接口的原始定义)
alt+右箭头
:前进
文件中右键->格式化代码(ctrl+shift+i)
:自动格式化代码
ctrl+f
:在当前文件中搜索
ctrl+shift+f
:在当前工程中搜索
ctrl+k然后再按ctrl+t
:修改主题
ctrl+p
:快速选择文件打开
ctrl+shift+o(或者ctrl+p输入@)
:打开当前代码的函数列表
ctrl+/
:对选中的代码自动加注释,再按一次可以去掉注释
【1】编程语言发展历程
机器语言 二进制序列
汇编语言 移植性较差
高级语言 c c++ java
【2】gcc编译器
功能:将代码转换程计算机能识别的机器语言
四步编译过程:
1. 预处理
展开头文件,删除注释等无用内容,替换宏定义
gcc -E hello.c -o hello.i
2. 编译
检查语法错误,有错就报错,没错就转换成汇编语言,生成汇编文件
gcc -S hello.i -o hello.s
3. 汇编
将汇编文件转换成二进制目标文件
gcc -c hello.s -o hello.o
4. 链接
链接库文件 ,最终生成机器能够识别的可执行文件
gcc hello.o -o hello
./hello
【3】计算机存储单位
1字节(Byte) = 8位(bit)
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1T = 1024GB
【4】计算机数据的表现形式
- 数值型数据
二进制 :0-1
八进制 :0-7
十进制 :0-9
十六进制 :0-9 a-f
- 进制转换
- 十进制转二进制:
1) 短除法 :除2倒取余
2) 拆分法 :拆成2的次方和
3) 计算机法:程序员模式
- 二进制转十进制:
求2的次方和
最低位是2的0次方,向左依次递增,将有1的位求和
101110 =》2^5+2^3+2^2+2^1 = 46
- 八进制转二进制:
1位8进制可以转换为3位二进制来表示,八进制以0开头
053 = 》101 011
0765=> 111 110 101
- 二进制转八进制:
从低位开始,每3个二进制为一组,转换成一位8进制,不够补零
1001011 =》 0113
101101001 =》 0551
- 十六进制转二进制:
一位16进制用4位二进制来表示(8421)
0xab=> 1010 1011
0x3ce=> 0011 1100 1110
- 二进制转16进制:
从低位开始,每4位二进制为一组转换为一个16进制,不够补零
1100011010=》0011 0001 1010 =》0x31a
练习:
分别转换成二进制
389 10000101
045 100101
0xac10 1010 1100 0001 0000
分别转换成八进制、十六进制
101010110101
05265
0xab5
- 非数值型数据
man ascii
查看ASCII码表
常用ASCII码
'\0' 0 字符串结束的标志
'\n' 10 换行
' ' 32 空格
'0' 48 字符0
'9' 57 字符9
'A' 65 大写字母A
'Z' 90 大写字母Z
'a' 97 小写字母a
'z' 122 小写字母z
【5】词法符号
概念:由若干字符组成的有意义的最小语法单位
分类:关键字、运算符、标识符、分隔符、标点符号
【6】关键字
概念:由系统预定义的具有特殊功能的词法符号
分类:
存储类型:auto static extern register
数据类型:char short int long float double signed unsigned
构造类型:struct(结构体) union(共用体) enum(枚举)
选择结构:if else switch case default
循环结构:for while do goto break continue
其他:void(空类型)typedef (重定义) volatile(防止被编译器优化)
const(常量化) sizeof(计算数据所占空间的大小) return(返回值)
【7】标识符
用来标识变量、函数或其他用户自定义的项目的名称
1. 由数字、字母、下划线组成
2. 开头不能是数字
3. 不能和关键字重复
4. 见名知义
任务:
进制转换:
将下列十进制、八进制、十六进制数分别转化为二进制:
102 、074、0xa9e
将二进制分别转化为十进制、八进制、十六进制数:
110110110
第一题:
102 转换为二进制得到: 1100110
八进制数 074 的二进制得到: 11100
十六进制数 0xa9e 的二进制得到: 10101001110
第二题:
十进制: 438
八进制: 666
十六进制: 1B6