上一个问题是将两个 Int32
编码为一个 Int64
[ C# - Making one Int64 from two Int32s
问题 :如何将一个 Int64
解码回两个 Int32
?
最佳答案
这是一个(便宜的)解决方案,适用于两种转换。
[StructLayout(LayoutKind.Explicit)]
public struct UnionInt64Int32 {
public UnionInt64Int32(Int64 value) {
Value32H = 0; Value32L = 0;
Value64 = value;
}
public UnionInt64Int32(Int32 value1, Int32 value2) {
Value64 = 0;
Value32H = value1; Value32L = value2;
}
[FieldOffset(0)] public Int64 Value64;
[FieldOffset(0)] public Int32 Value32H;
[FieldOffset(4)] public Int32 Value32L;
}
但是,这有一个明显的缺点,它是不可移植的。 Value32H 和 value32L 将在不同的字节序平台上颠倒。
关于c# - 如何将一个 Int64 解码回两个 Int32?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3616400/