图论一课(1)
课堂
C语言基础数据类型
(1)基本整型:char (1字节),short (2字节),int [2字节(16位),4字节(32位)],long int (4字节),long long (8字节)。
(2)浮点型:float (4字节),double (8字节)。2-10进制转化——贪心算法
例:127转化为2进制。
127<128 -> 0
127>64 ->1 (127-64=63)
63>32 ->1 (63-32=31)
31>16 ->1 (31-16=15)
15>8 ->1 (15-8=7)
7>4 ->1 (7-4=3)
3>2 ->1 (3-2=1)
1=1 ->1 (1-1=0)
(127)[10]->(0111 1111)[2]->(177)[8]->(0x7F)[16]反码与补码
正数的反码补码与原码相同。
负数的补码运算:取绝对值,取反,加一
例:-20的补码。
-20取绝对值化为二进制 -> 0001 0100
二进制取反 -> 1110 1011
二进制加一 -> 1110 1100-
ASCII码表
ASCII的取值范围为0-127;
常见类型:- 0——NULL;
- 32——(空字符);
- 48——0 -> 57——9;
- 65——A -> 90——Z;
- 97——a -> 122——z;
-
char类型的范围
void main() { char i; for (i = 0; i<128; ++i) { printf("%d",i);//死循环 } }
引例:为什么代码会死循环?
无符号char类型,当为1000 0000时表示128,当为1111 1111时表示255。而有符号char型最高既表示符号位也表示数值位,当0111 1111时是127,则1000 0000就表示-128。
所以无符号char型取值范围为0 -> 255,有符号char型取值范围为-128 -> 127。 -
Hello World
#include<stdio.h> int main() { printf("hello world\n"); return 0; }
-
#include< stdio.h >
预处理指令,include包含头文件stdio.h,<>为系统头文件用法,”“为自建头文件用法。 -
int main()
main函数,主函数为所有程序的入口且只有一个,返回值为int,()为形参列表,{}为函数体。 -
printf("hello world\n");
printf()函数,输出函数,打印hello world字符串,”“为字符串引用符,\n为转义字符,表示换行。 -
return 0;
返回表达式,为状态量,标志返回成功。
-
-
编译过程
-
变量
- 定义变量需要在内存中分配存储空间。
- 定义变量时,必须先定义后使用。
- 变量命名必须使用标识符,即字母、数字、下划线,且第一个字符必须是字母或下划线。
- 定义初始化变量是指在定义的同时给变量赋值。
-
类型转换
-
显示类型转换
( )——强制类型转换符float a = 12.5f; int b; b = (int)a;//强制类型转换
-
隐式类型转换
在双目运算中,低类型的数据直接转换为高类型的数据进行运算。
char型short型的数据转换为int型运算。
long型和double型的数据运算,先将long型转换为double型。
float型之间的运算默认为double型,两个float型数据运算,优先转化为double型,结果仍是float型。float a = 12.5f; float b = a + 12.5;//警告,从float到double会发生数据截断
-
课后
- 两个无符号int型数据a和b相加,应注意什么?
无符号int型的取值范围。 - C语言注释方式:
- //——行注释
- /**/——块注释
- # if 0
#endif——编译注释
- 浮点数在内存中的存储方式?
浮点类型在内存中由三部分构成,符号位+阶码(N)+尾数(M);
类型 | 符号位 | 阶码 | 尾数 |
---|---|---|---|
float | 1 | 8 | 23 |
double | 1 | 11 | 52 |