【问题标题】:Any language - Declare any variable size任何语言 - 声明任何可变大小
【发布时间】:2014-06-25 00:37:57
【问题描述】:

我知道类型用于定义这样的变量占用内存。所以我可以声明一个我想要的大小变量?例如,假设我的变量值将使用 0-3。我不知道 int 在 python 中占多少,但我们假设它是8 bytes。我不需要所有这些都可以存储到number 3。可以使用2 bits. 来做同样的事情你可以用python 或任何其他语言来做这件事吗?但它也可以声明一个变量1-bit, 7-bit, 54 bit,我想要的大小?

【问题讨论】:

  • 如果您担心内存分配,请不要使用 Python 之类的解释性语言。我们需要从这棵树上看到森林
  • 是您感兴趣的变量的内存大小,还是您想限制用户可以存储在变量中的值的范围?
  • @That1Guy 他试图询问哪种语言最能帮助他优化记忆。他想要一个其值永远不会超过4 的变量,但它以 8 个字节而不是 2 位存储。为了清楚起见,我可以进行编辑。
  • 准确的@AdamSmith。抱歉不清楚。可以编辑

标签: variables memory int


【解决方案1】:

对于 Python

您不知道变量占用了多少空间。如果您关心空间,请用 C 编写它。您可以使用字节和其他构造,但在空间中节省的任何东西都会丢失。

要找出支持的最大 int,请使用 sys.maxint

一般

如果您不是指 Python,那么我们可以以 C 为例。空间利用有许多不同的类型。

unsigned char - 1 byte
small int - 2 byte
int - 4 bytes
long - 8 bytes

但是将其存储为 2 位?如果你在递减和递增,你可能会失去你在空间中获得的复杂性。

您是否要将其他变量打包在同一个字节中以填充它?
你确定你不会用你的位数学破坏这些值吗?

出于多种原因,对于这样的事情只下降到字节级别是有意义的。

【讨论】:

  • OP 刚刚更改了这个问题以删除对 Python 的引用。
  • @AdamSmith,他在他的问题中仍然提到了 Python
  • @PadraicCunningham 所以他做到了。他从标题中删除了python 标签和 Python 一词。
猜你喜欢
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
相关资源
最近更新 更多