-
注释
单行注释
#include <stdio.h> int main() { int a, b, c; //声明三个int类型变量,变量名分别是a,b,c; }
//单行注释代码注释只能一行
多行注释
#include <stdio.h> int main() { /* 打印一行文字 */ printf("hello world!\n"); return 0; }
/**/为多行注释在代码中可多行注释,但有缺点,不支持嵌套注释
int main() { /* /* 最外侧的结尾注释符号将会失效 */ */ }
-
原码、反码、补码
原码:正整数与负整数的二进制原码,‘起始位为符号位’,'0’代表正’1’代表负。
10 0000 0000 0000 0000 0000 0000 0000 1010 -10 1000 0000 0000 0000 0000 0000 0000 1010 反码:正整数的反码与原码相同,负整数反码除符号位不变,其他位按位取反。
10 0000 0000 0000 0000 0000 0000 0000 1010 -10 1111 1111 1111 1111 1111 1111 1111 0101 补码:正整数的补码与反码相同,负整数补码在反码的基础上加一。
10 0000 0000 0000 0000 0000 0000 0000 1010 -10 1111 1111 1111 1111 1111 1111 1111 0110 负数给定补码求数值
补码 1111 1111 1111 1111 1111 1111 1111 1100 反码 1111 1111 1111 1111 1111 1111 1111 1011 原码 1000 0000 0000 0000 0000 0000 0000 0100 值为-4
过程
先将补码减一得到反码,将反码除符号位不变其他按位取反就会得到最后的值,当然也可以一步计算,按位取反后加一,由于补码的第一位是1所以应给是负数便可得到-4。
给定负数值求补码
-9
原码 0000 0000 0000 0000 0000 0000 0000 1001 反码 1111 1111 1111 1111 1111 1111 1111 0110 补码 1111 1111 1111 1111 1111 1111 1111 0111 过程
先找到负数的正数原码,之后按位取反加一便是补码。
3、define的宏定义
#include <stdio.h>
#define ADD(a, b) ((a)+(b)) //定义一个宏为ADD里面有2个参数a与b,进行加运算,如果在表达式不加括号将会有一些错误
int main()
{
int x = 5, y = 7;
int i = 10 * ADD(x, y); //将主函数内的x与y赋值给ADD中的a与b,并替换,等效于int i = 10 * ((a)+(b));
printf("%d\n", i); //120
return 0;
}
//可能发生的错误
#define ADD(a, b) a + b
int main()
{
int x = 5, y = 7;
int i = 10 * ADD(a + b) //等效int i = 10 * 5 + 7;
printf("%d\n", i); //57
}//所以建议加上括号