本人大一参加2021年C++ B组蓝桥杯,第一题因存储单位的换算不清楚
故地重游
问题描述
小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
//注意10^9级别一下的整数常量默认为int。
//本题可能会爆int,故强转long long
cout << (long long)256 * 1024 * 1024 * 8 / 32 << endl;
return 0;
}
计算机中数据存储单位
- 比特/位(bit,b)是表示信息量的最小单位,只有0、1两种二进制状态
- 字节(Byte,B)是存储数据的基本单位
- 字(Word),两个字节称为一个字
- KB
- MB
- GB
- TB
🌳存储单位是一种计量单位。指在某一领域以一个特定量,或标准做为一个记录(计数)点。再以此点的某个倍数再去定义另一个点,而这个点的代名词就是计数单位或存储单位。
🌳在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位有KB、MB、GB和TB等几种。
基本储存单元
🌳比特/位(bit,b):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。
🌳字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节。例如,一个ASCII码用一个字节表示,一个汉字用两个字节表示。
🌳字(Word):两个字节称为一个字。汉字的存储单位都是一个字。
扩展的存储单位
在计算机各种存储介质(例如内存、硬盘、光盘等)的存储容量表示中,用户所接触到的存储单位不是位、字节和字,而是KB、MB、GB等,但这不是新的存储单位,而是基于字节换算的。
🌳KB:早期用的软盘有360KB和720KB的,不过软盘已经很少使用。
🌳MB:早期微型机的内存有128MB、256MB、512MB,目前内存都是1GB、2GB甚至更大。
🌳GB:早期微型机的硬盘有60GB、80GB,目前都是500GB、1TB甚至更大。
🌳TB:目前个人用的微型机存储容量也都能达到这个级别了,而作为服务器或者专门的计算机,不可缺少这么大的存储容量。
换算单位
8 bit = 1 B (Byte) 一字节 |
1024 B = 1 KB (KiloByte) 千字节 |
1024 KB = 1 MB (MegaByte) 兆字节 |
1024 MB = 1 GB (GigaByte) 吉字节 |
1024 GB = 1 TB (TeraByte) 太字节 |
1024 TB = 1 PB (PetaByte) 拍字节 |
1024 PB = 1 EB (ExaByte) 艾字节 |
1024 EB = 1 ZB (ZetaByte) 泽字节 |
1024 ZB = 1 YB (YottaByte) 尧字节 |
1024 YB = 1BB(Brontobyte)珀字节 |
1024 BB = 1 NB (NonaByte) 诺字节 |
1024 NB = 1 DB (DoggaByte)刀字节 |