小编Wil*_*ell的帖子

C#将多个有符号整数打包为一个64位值

我需要在一个64位值中打包和解压几个值.我有3个有符号整数(x,y,z).我想将它们打包成一个64位值(有符号或无符号对我来说无关紧要),分别使用24,16和24位.这是我的要求:

1)我可以提前确保存储的值不超过我用来将它们存储到64位值的位数限制,因此不需要进行额外的检查.

2)初始值是有符号的,所以我认为可能需要做一些魔术才能确保没有任何东西丢失.

3)这种转换将发生很多,所以它需要很快.我知道在C++中,通过将值存储在指定整数长度的结构中,然后建立一个指针,该指针只指向可用于64位值的第一个值,可以很容易地完成.使用这种方法,确实没有任何数学需要完成,一切都只是内存读取或正确.据我所知,这不能简单地在C#中完成,但C#是我必须为这个项目工作的.

4)我真的不关心64位值是有符号还是无符号,只要我可以双向操作并恢复初始值,并且使用的任何类型都可以用于Dictionary键.

c# 64-bit

4
推荐指数
3
解决办法
1012
查看次数

标签 统计

64-bit ×1

c# ×1