首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >16 kb数组中有多少个整数

16 kb数组中有多少个整数
EN

Stack Overflow用户
提问于 2011-01-29 02:44:45
回答 1查看 2.7K关注 0票数 0

我之所以问这个问题,是因为我正在使用cuda在gpus上编程。共享内存是16kb,因此我需要知道我可以创建的最大整数数组是多少?

如果我有一个4 4GB的内存,是否也可以创建一个大约(3,000,000个整数)的大型数组?计算这个值的正确方法是什么?在32位操作系统上是4字节的整数,在64位系统上是8B吗?因此,同样的整数数组在64位操作系统上的内存空间将是在32位操作系统上的两倍?当涉及到内存空间计算时,我感到迷茫……有人能给我“辅导”吗?

我正在使用c作为编程语言...

EN

回答 1

Stack Overflow用户

发布于 2011-01-29 02:50:16

整数是32位还是64位(或其他值)取决于您的处理器、操作系统和编译器设置,以及您使用的确切数据类型。我相信在普通平台上int是32位的,而long long是64位的。long的含义各不相同:在x86 Linux上,32位机器上是32位,64位机器上是64位。不过,我认为Windows做了一些不同的事情。就计算大小而言,您可以通过size * sizeof(T)确定T数组将占用多少字节;手动将大小乘以数字中的位数除以8。因此,一个16kB的内存可以存储4k个32位整数或2k个64位整数,3M元素数组将占用12MB用于32位整数,24MB用于64位整数。您可以独立于硬件选择数据大小。您可能还想查看C99的<stdint.h>,以获得具有特定位大小的整数类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4831885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档