1. 2的i次方
- 位运算
1 << i
适用于非负整数,将1的二进制形式向左移i位,表示2的i次方 #include<cmath> 库中pow(2,i)
数学函数计算- 注意
2 ^ i
不能表示2的i次方。在 C++ 中,^ 是按位异或运算符.
2.二进制下的乘法
两个二进制下的数相乘,计算规则和整数是一样的,最后得到的还是二进制。
3.字符与字符串
注意字符串string使用双引号" "
;
char类型使用单引号' '
。
4.数据范围<->变量类型选择、用法
为了避免空间爆掉,有两种变量可以储存整数。
int
型变量,最多9位数,也就是1e9
;long long
最大可达1e18
.- 各种用法
整数类型
1)long
型
long value = 42L;
printf("%ld", value); // 输出:42
scanf("%ld", &value); // 输入:42
2)long long
型
long long value = 42LL;
printf("%lld", value); // 输出:42
scanf("%lld", &value); // 输入:42
浮点型
3)float
型(对应int)
float value = 42.42f;
printf("%f", value); // 输出:42.420000
scanf("%f", &value); // 输入:42.42
4)double
型 (对应long)
double value = 42.42;
printf("%lf", value); // 输出:42.420000
scanf("%lf", &value); // 输入:42.42
5)long double
型 (对应long long)
long double value = 42.42L;
printf("%Lf", value); // 输出:42.420000
scanf("%Lf", &value); // 输入:42.42
6)char
型
char value = 'A';
printf("%c", value); // 输出:A
scanf("%c", &value); // 输入:A
7) char[]
型C字符串
char value[100] = "Hello";
printf("%s", value); // 输出:Hello
scanf("%s", value); // 输入:Hello
8) string
型C++字符串
printf
: 使用 c_str()
方法将std::string转换为C字符串;
通常不用scanf
直接读取std::string,而是使用std::cin
std::string value = "Hello";
printf("%s", value.c_str()); // 输出:Hello
std::cin >> value; // 输入:Hello
5.<cstdio>
库
如果要使用printf()
、scanf()
、puts()
函数,必须要#include<cstdio>
.
puts(“No!”);
是专门用于输出字符串的函数,并且它会自动在字符串末尾添加换行符。- 当输入、输出的数据规模达到1e5以上,推荐使用scanf() 和 printf()函数,会快很多。