有没有更好的方法将数值数据存储在uint64中,而不是使用x个数字作为一个数字,y数字用于其他内容? (总共20位数)
我试图存储有关对象的信息,而没有制作结构或类的开销。我需要以最小的开销尽可能快地获取/设置。
答案 0 :(得分:3)
所以,据我所知,体素编码。如果要存储逐个定义的“块”数据,则可以使用区间树,其中每个节点的键是运行的开始,值是运行的坐标。 Implemntation example。
此外,您永远不会将单个块存储为类,但块的SET(例如块3x3)可以完成:
如你所见,我只用两位编码了9个块的数据位置 这是一种简化的方法,数据大小不是问题,但需要快速实现迭代,这需要形成一些算法。
在你开始玩Voxels之前,先阅读这些
互联网充满了回答,但这些将提供您需要的信息。我认为你正在关注的关键词是 VOXEL
答案 1 :(得分:1)
如果使用uint64
或ulong
不是固定要求,建议您使用BigInteger class。它旨在有效地存储任意大数字。
有效吗?如果您反编译代码,您将看到它们在内部存储一个位数组来管理该数字。也就是说,对于N
位,它会存储一个最多2^N - 1
的数字。