提问人:Hal Heinrich 提问时间:12/4/2022 最后编辑:Theodor ZouliasHal Heinrich 更新时间:12/4/2022 访问量:144
在 C# 中,如何提取构成 UInt128 的两个 UInt64 值?
In C#, how do I extract the two UInt64 values that make up a UInt128?
问:
假设我有一个这样的 UInt128
UInt64 upperA = 7, lowerA = 8;
UInt128 foo = new(upperA, lowerA);
++foo;
现在我想从更新的 foo 中提取两个 UInt64。
如果它们是属性,我可以这样做
UInt64 upperB = foo.Upper, lowerB = foo.Lower;
但事实并非如此,那么我该如何获得它们呢?
答:
5赞
brunnerh
12/4/2022
#1
通过转换为 UInt64,您已经可以获得较低的位;要获得上层,您可以先应用位移:
var lower = (UInt64)foo;
var upper = (UInt64)(foo >> 64);
评论