第一章
此章节,是没有什么记录的东西,到最后再提炼刷题的知识。
第二章
INT 范围问题
题目范围在 10^9(-2^31~2^31-1)及以下用int(32字节)就可以。如果在-2^63~2^63-1(范围超过2147483647(10^10或10^18))就用需要long long来实现.
浮点数问题
能用double,就用double
- float 32位 -2^128~2^128 1位符号位 8位指数位,23位尾数位 但是精度只有6-7位。
- double 64位 -2^1024~2^1024 1位符号位 11位指数位,52位尾数位 精度只有15-16位。
- %m.nf 总共m位 n位小数。
布尔型
bool 类型在C++可以直接使用 但是在C语言中必须添加stdbool.h头文件。非零则为ture.
在计算机中ture=1 false = 0符号常量和const常量
实现ADD(a,b)
1
2
3
4
5
6
7
8
9
10
using namespace std;
int main()
{
int num1=3,num2=5;
printf("%d",ADD(num1,num2));
return 0;
}
注意
发现此时define对应的括号的数量很多,因为define中对应的括号会产生优先级的问题。
例如下面的例子1
2
3
4
5
6
7
8
9
10
using namespace std;
int main()
{
int a=1;
printf("%d\n",CAL(a+1));
return 0;
}
此时输出的是4 而不是5 因为宏定义是原封不动的替换,因此导致CAL(a+1)=a+12+1=4 而不是(a+1)2+1