0

有没有更好的方法将数字数据存储在 uint64 中,而不是使用 x 位来存储一件,y 位来存储其他东西?(共 20 位数可使用)

我正在尝试存储有关对象的信息,而无需创建结构或类的开销。我需要以最小的开销尽可能快地获取/设置。

4

2 回答 2

3

所以,据我所知体素编码。如果要存储一个一个定义的“块”数据,则可以使用区间树,其中每个节点的键是运行的开始,值是运行的坐标。实现示例

此外,您永远不要将单个块存储为类,但块 SET (例如块 3x3)可以按以下方式完成:

在此处输入图像描述

如您所见,我只是将 9 个块的数据位置编码为两位这是一种简化的方法,数据大小不是问题,而是需要某种算法的快速迭代实现。

在你开始玩体素之前,请阅读这些

让我们做一个体素引擎

该死的,体素数据很大

体素引擎无处不在……</a>

体素引擎——数据存储

互联网上充满了答案,但这些都会为您提供所需的信息。我认为您缺少的关键字也是VOXEL

于 2015-11-10T18:19:35.067 回答
1

如果使用uint64orulong不是固定要求,我建议您使用BigInteger 类。它旨在有效地存储任意大的数字。

它有效率吗?如果你反编译代码,你会看到它们在内部存储了一个位数组来管理数字。也就是说,使用N位,它可以存储最多2^N - 1.

于 2015-11-10T18:35:56.977 回答