二进制、八进制、十进制、十六进制包含的数分别如下:
????????二进制:0 1
????????八进制:0 1 2 3 4 5 6 7?
? ? ? ? 十进制:0 1 2 3 4 5 6 7 8 9
? ? ? ? 十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
二进制、八进制、十六进制转十进制,采用按权展开再求和的方法。
十进制转二进制、八进制、十六进制,采用十进制除以进制数得到的余数逆序排列。
二进制转八进制、十六进制,八进制一位对应二进制三位,十六进制一位对应二进制四位。
??? 程序(外存中)
????执行(加载到内存中)
????程序运行结束(回收内存空间)
????正数在计算机中存放对应的二进制数
????负数在计算机中存放补码
????????1.原码
????????2.反码??
????????3.补码
????????4.内存数据
gcc filename.c
1.预处理
? ? ? ? 处理和#相关的代码,如头文件展开,宏定义替换和条件编译等。
2.编译
????????将C语言程序编译成汇编代码
????????gcc?-S?filename.c?-o?filename.s?
3.汇编
????????将汇编代码编译成二进制代码
????????gcc?-c?filename.c?-o?filename.o?
????4.链接?
????????将多个二进制代码链接成为一个可执行程序
????????gcc?filename.c?-o?filename
????????1.基本数据类型:
????????????整形数据?short?int?long?
????????????????????short?(signed?short)
??????????????????????????unsigned?short?
????????????????????int???(signed?int)
??????????????????????????unsigned?int?
????????????????????long??(signed?long)
??????????????????????????unsigned?long?
????????????浮点型数据?float?double?
????????????字符型?char
????????????逻辑类型(泊尔类型)?bool?
????????????缺省类型(void)
????????
? ??2.构造数据类型:
????????????结构体
????????????共用体
????????????枚举类型
????3.基本数据类型
????????1.整数类型:
名称 | 占内存空间 | 值域范围?? | 存储方式 |
short:?短整形? | 2个字节空间?? | ?-32768?-?32767 | 补码 |
unsigned?short 无符号短整型? | 2个字节空间? | 0?-?65535? | 对应的二进制数 |
?int:???整形 | 4个字节空间 | ?-21亿?-?21亿 | 补码 |
unsigned?int? ?无符号整形 | 4个字节空间? | ?0?-?42亿? | 对应的二进制数 |
long: 长整型? | ?8个字节空间 | -2^63?-?2^63?-1 | 补码 |
?unsigned?long: ??无符号长整型 | 8个字节空间 | ?0?-?2^64?? | 对应的二进制数 |
2.浮点数类型:
????????????所有的浮点数类型均为有符号类型,没有无符号类型的概念。
名称? | 占内存空间 | 值域范围? | 存储方式 |
float 单精度浮点数类型(最多表示6-8位有效数字) | 4个字节 | -3.4*10^38?-?1.18*10^-38? 1.18*16^-38?-?3.4*10^38 | 1位符号位?+?8位指数位?+?23位尾数位 |
double?? 双精度浮点数类型(最多表示12-14位有效数字) | 8个字节 | -1.80*10^308?-?2.23*10^-308? 2.23*10^-308?-?1.80*10^308 | 1位符号位?+?11位指数位?+?52位尾数位 |
????????????浮点数?->?二进制形式?->?科学计数法转换?->?小数点后存入尾数位中?->?指数位+偏移数(float:127?double:1023)以二进制形式存入指数位中?
????????????IEEE754?
????????????和整数存储方式完全不同
3.字符型:
????????????char?
????????????a?..?z
????????????A?..?Z?
????????????#???..?
????????????ASCII码表:
????????????字符和数字的对应关系
????????????a?->?97?
????????????名称????????????????内存空间大小????????????????值域范围????????????存储方式?
????????????unsigned?char???????1个字节????????????????????0?-?255?????????????存储字符在ASCII码表中对应数字的二进制形式?
????????????signed?char?????????1个字节????????????????????-128?-?127?
????????4.逻辑类型:
????????????bool?
????????????名称????????????????内存空间大小????????????值域范围????????????????存储方式?
????????????泊尔类型?bool???????1个字节?????????????????true????????????????????1
???????????????????????????????????????????????????????false???????????????????0
????????????在C语言中所有的非0值均为逻辑真值
????????????????????????????0值为逻辑假值
????????5.缺省类型:
????????????void?
????????????搭配函数和指针使用
????????????void?a;
????????1.常量:?在程序运行过程中值不允许发生改变的量
????????2.变量:?在程序运行过程中值可以发生改变的量
????????3.表达式:由一个或者多个运算符连接的变量和常量组成的式子
????1.整形常量:
????????默认为int类型
????????100?????????int类型
????????100l????????long类型
????????100u????????unsigned?int类型?
????????100ul???????unsigned?long类型
????????100L?
????????100U?
????????100UL?
????????0123????????八进制常量
????????0x1a????????十六进制常量
????????0X1A
????2.整形变量:
????????1.变量要先定义再使用
????????????1.变量定义的形式:
????????????????数据类型?变量名;
????????????????1.变量名可以由字母、数字、下划线构成不能以数字开头
????????????????2.变量名不能与C语言关键字重名
????????????????3.变量名最好不要与库函数重名
????????????????4.变量名最好是见名知意?
????????????????????
????????????????????驼峰法:
????????????????????int?TempNum;
????????????????????int?MaxCnt;
????????????????????int?MinNum;
????????????????????int?AvgScore;
????????????????????内核法:
????????????????????int?temp_num;
????????????????????int?max_cnt;
????????????????????int?min_cnt;
????????????????????int?avg_score;
????????2.变量拥有存储空间,也有值域范围
????3.?浮点型常量:
????????默认为double类型?
????????3.1415??????????double类型
????????3.1415f?????????float类型?
????????3.1415e8
????????3.1415e-8
????????3.1415E8
????????3.1414E-8?
????4.?浮点型变量:
????????double?d;
????????float?f;
????5.字符型常量:
????????'a'?'A'
????????'z'?'Z'
????????'?'?'#'
????????'~'?'?'
????????'\''?:?'号
????????'\n'?:?换行符
????????'\t'?:?横向制表符
????????'\v'?:?纵向制表符
????????'\r'?:?回车符
????????'\b'?:?退格符
????????'\\'?:?\符?
????????'0'
????????'1'??:?字符1?
????????'2'??
????????'3'
????????'4'
????????'5'
????????'6'
????????'7'
????????'8'
????????'9'?
????????'\0'?:?字符\0
????????'1'?->?ASCII码表?->?49??????
????????1???:?1
????????'0'??:?48?
????????0????:?0
????????'\0'?:?ASCII码值为0?用来标识字符串的结尾
????????'\123'?:?八进制123对应的字符
????????'\x32'?:?十六进制32对应的字符??