ASCII:
是基于拉丁字母的一套电脑编码系统。(将字符进行编码的编码表)
常用的ASCII码
‘A’:65
‘Z’:90
‘a’:97
‘z’:122
‘ ’:32
‘0’:48
‘9’:57
进制:
1.二进制前缀:0b
2.八进制前缀:0
3.十进制前缀:无
4.十六进制前缀:0x
十转二:短除法,凑
951 1
475 1
237 1
118 0
59 1
29 1
14 0
7 1
3 1
1
二转八:
0b1 110 110 111
01667
二转十六:
0b11 1011 0111
0x3b7
例子:
831 1
415 1
207 1
103 1
51 1
25 1
12 0
6 0
3 1
1 1
831-512=319
319-256=63
63-32=31
31-16=15
15-8=7
7-4=3
3-2=1
0b1100111111
01477
0x33f
数据存放方式(原码、反码、补码):
51 0b 0001 1001
原码:0001 1001
反码:0001 1001
补码:0001 1001
-12 0b 1000 1100 (第一位符号位)
原码:1000 1100
反码:1111 0011
补码:1111 0100
‘a’ASCII:97 0b 0110 0001
C语言虚拟内存图(4G大小):
内核(操作系统)(1G)
用户区(3G):
堆区:提供给程序员开辟空间(malloc动态分配,不会自动回收,free手动回收)
栈区:计算机自己开辟的空间(存储局部变量)
mmap:内存映射区(映射内核)
静态区:存储全局变量
.bss:存放未初始化全局变量
.data:存放已初始化全局变量
剩下的空间:代码段、环境变量等
变量、常量:
常量:其值不会发生改变
整型常量:51(十进制) 0b101(二进制) 047(八进制) 0x5a(十六进制)
字符常量:‘a’‘G’‘+’
字符串常量:“adc”“d”
浮点型常量:3.14 1.2e+7
标识常量:#define MAX 100
变量:其值可能发生改变
定义:<存储类型><数据类型><标识符>
存储类型:auto(默认类型),static(静态存储类型),extern(外部存储类型),register(寄存器存储类型)
数据类型:int,short,long,long long,float,double,char,char*
16位编译器:2 ,2 ,4 ,8 ,4 ,8 ,1 ,2 (所占字节数)
32位编译器:4 ,2 ,4 ,8 ,4 ,8 ,1 ,4
64位编译器:4 ,2 ,8 ,8 ,4 ,8 ,2 ,8
初始化:赋一个初始值 int age = 8;
赋值:age = 9;
变量的生命周期:
普通变量:从定义开始到当前模块结束
全局变量:从定义开始到程序结束(初始值默认为0)
局部变量:从定义开始到当前模块结束(初始值默认为0或随机数)
变量的存储位置:
全局变量:静态区
局部变量:栈区
存储类型:
auto:
普通存储类型
int a;
auto int a;
register:
寄存器类型
读取速度快,但寄存器少
register int a;
若分配register失败,则分配auto
extern:
外部存储类型
拓展全局变量使用范围
让函数、全局变量可以在其他文件中使用
extern int a;
static:
静态存储类型
修饰函数、全局变量,只能在本文件中使用
修饰局部变量,延长变量的生命周期
static int a;