一、进制
1、判断一下数字是否合理
- 000011 //八进制0开头,所有类型的进制大小写无所谓
- 0x7933 //十六进制0x开头大小写无,所谓包括ABCDEF
- .089 //浮点型 默认double,前面的0可以省略
- 0b1011 //而进制0b开头,后面的数字只能是0和1
- 96.0f //浮点型
- 96f //错误❌,f只能跟小数。
- 15.4e6 //科学计数法
- 15.4e-6 //
- 1.4e8.6 //错误❌,科学技术发不能用小数
- +178 //正数
- -.178 //负小数
所有的进制最终在内存显示为二进制,二进制的最高位是表示正负位数。内存寻址是从大到小,整型等类型的地址是最高位字节的地址,也就是最小值的地址。
3、位运算
- |//按位或,一真即真。
- & //按位与,同真则真。
- ^ //按位异或,不同则真。任何数值与0异或值还是原来的。相同数值异或值肯定是0。
- ~ //安位取反 ~9职能操作一个值,连同符号位一样取反,正数即变成负数。
- <<//左移,高位丢弃,低位补零。左移一位相当于乘2,但有可能导致正负的改变。
- >>//右移,高位用符号位补齐(看编译器),低位舍弃。右移以为相当于除以2。
4、位运算应用
- //判断奇偶性,是否能被2整除。最后一位是1则为基,最后一位为0则为偶。
- a & 1 == 0;//相当于取出最后一位判读奇偶性。因为奇数最后一位一定位1。
- a & 0 == 1;
-
- //把一个数的二进制数输出,即取出每一位的值,也是&操作,想取出哪一位即哪一位与上一。右移一位与上1.
- void binary(int number)
- {
- int temp = (sizeof(number)>>3) -1;//位运算的级别比较低,先算加减。
- //int temp = 31;//有多少位,从零开始,应改从最高位开始输出。
-
- while(temp>=0){
- int value = number>>temp & 1;//右移一位与上1。
- temp——;
- printf(“%d”, number);
- }
-
- if((temp+1)%4 == 0)
- {
- printf(“ ");
- }
-
- }
-
二、函数
1、include的作用是把文件的内容包含进来,相当于复制。程序在编译的时候只需要把函数的头文件包含进来即可,编译的作用只是检查语法是否有错,在链接的时候才会把系统中所有的.O文件和系统函数包含进来形成可执行文件。
2、c语言是弱类型弱语法,函数的返回值可以不定义,默认为int类型,即便定义了返回值也可以不return。并且在c语言中不允许两个函数的名称相同,即便是参数列表不同也不行。
3、return的作用就是退出函数,或者返回一个值给使用者。在定义文件路径时,有’/’的是绝对路径,没有的为相对路径。
- float a = 3.0/2.0; //a的值为1.500000
- float b = 3/2.0; // b的值为1.500000
- float c = 3.0/2; //c的值为1.500000
- int d = 3/2; // d的值为1 ,整数运算还为整数
- int e = (int)1.8; // 强制类型转化不是进行四舍五入,而是直接舍去。
-
- //自增,自减运算符高于算数运算符和关系运算符
- int g = 10;
- //先取g的值赋值给g++,(10)+(++g)
- //g++运算完成后g等于11
- //然后运算++g,先加后用,11+1=12
- //(10)+(12)=22
- int f = (g++)+(++g);//结果22
-
- //sizeof的多种写法
- sizeof(10);//4
- sizeof 10; //4
- sizeof(int);//4
- sizeof int;//错误❌,不支持这种写法
- int g =10;
- sizeof g;//4
- sizeof(g);//4
-
- //算数运算符的优先级大雨关系运算符
- a>b//条件成立返回1,条件不成立返回0,任何非0值都是真,只有0为假。
-
- //逻辑与逻辑或
- //&& ||,为了提高效率,都会根据左边的运算结果来决定右边的数是否有必要运算。
-
- //优先级: 小括号() > 负号- > ! > 算数运算符 > 关系运算符 > && > ||
-