繁体   English   中英

C#uint64 —存储数据?

[英]C# uint64 — Store data?

除了将x位数字用于一件,将y位数字用于其他东西之外,是否有更好的方法将数字数据存储在uint64中? (总共20位数字)

我正在尝试存储有关对象的信息,而没有制作结构或类的开销。 我需要以最小的开销尽快获取/设置。

因此,据我所知,体素编码。 如果要存储一个一个定义的“块”数据,则可以使用时间间隔树 ,其中每个节点的键是运行的起点,而值是运行的坐标。 象征例子

另外,您永远不要将单个块存储为类,但是可以通过以下方式设置块的设置,例如块3x3:

在此处输入图片说明

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

在开始使用Voxels之前,请阅读以下内容

让我们制作一个体素引擎

该死,体素数据很大

体素引擎无处不在...

Voxel引擎–数据存储

互联网上有很多答案,但是这些都会为您提供所需的信息。 我认为您在误解的另一个关键字是VOXEL

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

有效率吗? 如果您对代码进行反编译,则会看到它们在内部存储了一个位数组来管理数字。 也就是说,使用N位,它存储的数字最大为2^N - 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM