[英]C# uint64 — Store data?
除了将x位数字用于一件,将y位数字用于其他东西之外,是否有更好的方法将数字数据存储在uint64中? (总共20位数字)
我正在尝试存储有关对象的信息,而没有制作结构或类的开销。 我需要以最小的开销尽快获取/设置。
因此,据我所知,体素编码。 如果要存储一个一个定义的“块”数据,则可以使用时间间隔树 ,其中每个节点的键是运行的起点,而值是运行的坐标。 象征例子 。
另外,您永远不要将单个块存储为类,但是可以通过以下方式设置块的设置,例如块3x3:
如您所见,我只是将两位的9个块的数据位置编码了。这是一种简化的方法,其数据大小不是问题,而是快速迭代的实现,需要某种算法。
在开始使用Voxels之前,请阅读以下内容
互联网上有很多答案,但是这些都会为您提供所需的信息。 我认为您在误解的另一个关键字是VOXEL
如果使用uint64
或ulong
不是固定要求,建议您使用BigInteger类 。 它旨在有效地存储任意数量的数字。
有效率吗? 如果您对代码进行反编译,则会看到它们在内部存储了一个位数组来管理数字。 也就是说,使用N
位,它存储的数字最大为2^N - 1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.