计算机存储单位
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024B (B 代表字节,是存储信息的基本单位)
当只有 1 个二进制位时,能表示的状态为 0
或 1
,共 2 种状态。
当有 2 个二进制位时,能表示的状态为 00
、01
、10
、11
,共 22=4 种状态。
当有 3 个二进制位时,能表示的状态为 000
、001
、010
、011
、100
、101
、110
、111
,共 23=8 种状态。
位(bit,缩写为 b):是存储信息的最小单位,一个位只能存储 0
或 1
这样的二进制值。
字节(Byte,缩写为 B):1B(字节) = 8b(位) ,即一个字节由 8 个二进制位组成。多个字节可以组合存储更复杂的数据。
常见数据类型的存储大小
数据类型 | 占用字节数 | 说明 |
---|---|---|
short | 2B | 常用于存储较小范围的整数 |
int | 4B | 常用的整数类型,可存储一定范围内的整数 |
long long | 8B | 用于存储更大范围的整数 |
float | 4B | 单精度浮点数,用于存储小数,但精度有限 |
double | 8B | 双精度浮点数,相比 float 能存储更精确的小数 |
bool | 1B | 用于存储逻辑值,取值为 true 或 false |
char | 1B | 用于存储单个字符,如字母、数字、符号等 |
由于 int
类型占用 4 个字节,也就是 32 位 ,其中最高位用于表示正负(0 表示正数,1 表示负数),
所以 int
类型能表示的最大值为 231-1 (因为 32 位中 1 位用于符号位,剩下 31 位全为 1 时表示最大值,同时还要包含 0 这个数值 )。
C 和 C++ 的输入输出对比
(一)C++ 的输入输出
cin
和 cout
进行输入输出操作,语法简洁直观。cin
用于从标准输入设备(通常是键盘)读取数据,cout
用于向标准输出设备(通常是显示器)输出数据。#include <iostream> #include <cstdio> using namespace std; int main() { int num; cin >> num; // 从键盘读取一个整数存储到 num 中 cout << num << endl; // 输出 num 的值并换行 return 0; } #include <iostream> #include <cstdio> using namespace std; int main() { int a, b; cin >> a >> b; cout << a << " " << b << endl; return 0; }
(二)C 的输入输出
scanf
和 printf
函数进行输入输出操作,scanf
用于从标准输入读取数据,printf
用于向标准输出打印数据。在使用 scanf
时,需要注意为变量传递正确的地址(使用 &
符号)。#include <iostream> #include <cstdio> using namespace std; int main() { int num; scanf("%d", &num); // 从键盘读取一个整数存储到 num 中 printf("%d\n", num); // 输出 num 的值并换行 return 0; } // 多个数 int a, b, c; scanf("%d %d %d", &a, &b, &c); // cin >> a >> b; printf("%d_%d", a, b); // cout << a << "_" << b;
三、输出的格式化(C 语言风格)
printf
函数中,使用格式控制符来指定输出的数据类型和格式:%d
:用于输出 int
类型的整数。
%lld
:用于输出 long long
类型的整数,lld
中的 l
表示长整型(long
),d
表示十进制(decimal
)。
%f
:用于输出 float
类型的浮点数。
%lf
:用于输出 double
类型的浮点数,double
也称为 long float
(长浮点数),精度比 float
更高。
#include <iostream> #include <cstdio> using namespace std; int main() { int int_num = 10; long long ll_num = 10000000000LL; float float_num = 3.14f; double double_num = 3.1415926; printf("%d\n", int_num); printf("%lld\n", ll_num); printf("%f\n", float_num); printf("%lf\n", double_num); return 0; }
四、C++ 保留小数的方法
(一)方法一:使用 <iomanip>
头文件和 fixed
、setprecision
操纵符
#include <iostream> #include <iomanip> using namespace std; const double PI = 3.1415926;int main() { double r; cin >> r; double s = r * r * PI; cout << fixed << setprecision(2) << s << endl; // 保留两位小数输出 return 0; }
fixed
表示固定小数点表示法,setprecision(n)
用于设置小数部分的位数为 n
。(二)方法二:使用 C 语言风格的 printf
函数
#include <cstdio> int main() { double r, s, PI = 3.14; scanf("%lf", &r); s = r * r * PI; printf("%.2lf", s); // 保留两位小数输出 return 0; }
在 printf
中,%.2lf
表示输出一个 double
类型的数,并保留两位小数。
作业代码
// A.温度转换 #include <iostream> #include <cstdio> using namespace std; int c; double f; int main(){ cin >> c; f = 9 / 5.0 * c + 32; printf("%.2lf", f); return 0; } // B. 求长方形的周长和面积 #include <iostream> #include <cstdio> using namespace std; int a, b, c, d; int main(){ cin >> a >> b; c = 2 * (a + b); d = a * b; cout << c << endl << d; return 0; } // C. 求5位数各个位数之和 #include <iostream> #include <cstdio> using namespace std; int n, g, s, b, q, w; int main(){ cin >> n; g = n % 10, n /= 10; s = n % 10, n /= 10; b = n % 10, n /= 10; q = n % 10, n /= 10; w = n % 10, n /= 10; cout << g + s + b + q + w; return 0; } // D. 买文具 #include <iostream> #include <cstdio> using namespace std; int x, y, n; int main(){ cin >> x >> y >> n; cout << n - (x + y); return 0; }
上一篇
001 C++基础学习
有话要说...