当前位置:首页 > 内存 > 正文

一维数组占用的内存

  • 内存
  • 2024-05-30 16:58:45
  • 405

一、KB大些还是M?

M比较大,1MB=1024KB。

根据国际单位制(SI):

1KB=1024B;1MB=1024KB=1024×1024B。

1B(字节,字节)=8位(见下文

1KB(千字节,千字节)=1024B=2^10B

1MB(兆字节,兆字节,百万字节,简称“兆”)=1024KB=2^20B

1GB(千兆字节,千兆字节,十亿字节,又称“千兆字节”)”)=1024MB=2;^30B。

扩展信息

M和KB都是数据存储单位。

任何数据类型的数组都需要20字节的内存空间,加上每个数组4字节维度,加上数据本身占用的空间,可以通过数据元素的数量乘以每个元素的大小来计算。2字节整数数据元素占用8个字节

这8个字节加上额外的24个字节使该数组所需的总内存空间达到32个字节。包含数组的变体比单独的数组需要多12个字节。

硬盘制造商以GB(十进制表示法,即10的三次方=1000,例如1MB=1000KB)计算,而计算机(操作系统)以GiB(十进制表示法,即2的10次方)计算力,如1MiB=1024KiB),但国内用户一般理解为1MiB=1M=1024KB,所以为了方便理解中国文化,也可以将MiB翻译为MB。

同样基于硬盘厂商和用户对1MB大小的不同理解,很多160G的硬盘按实际电脑的1MiB=1024KB计算,实际容量还不到160G。这或许也可以解释为什么购买的硬盘“取金段两”并没有说的那么大。

参考来源:--KB


二、20GB的硬盘表示容量约是多少字节?怎么计(要过程)?

20GB硬盘代表大约200亿字节的容量

说明:硬盘制造商通常以小数计算:

1GB=1000MB=1000*1000KB=1000*1000*1000B=1000000000B

所以:20GB=20*1000000000B=20000000000B

计算过程


三、64位C++一维指针数组和结构体占用内存大小结算别说是位,至少必须是一个完整的字节,不占用任何零散的位
与64位最大的区别是地址是8个字节,即sizeof(A*)=8
int**array=newint*[n];
这样我们就可以看到数组本身占用了8个字节的分配空间。每个int*占用8个字节。总共分配的空间大小为8*n
结构为
第一个void*lpItem占用8个字节。
uint32_tnIndex占用4个字节。uint16_tn长度;;占用2个字节。
根据对齐方式的不同,64位默认应该是8字节对齐,因此这个结构体的大小应该是16字节。
如果您使用的是64位编译器,您可以:打印它并检查
sizeof(int*)
sizeof(int**)
sizeof(ITEM)。