有时候考虑到平台之间的通用性,可能把一个Ulong拆分成2个Uint来进行各平台之间的通讯,当时转换的时候有点头晕,对与或预算不是很熟悉,不过还是花了半小时弄出来了,代码:
//ulong的最大值2^64 ulong value = (ulong)System.Math.Pow(2, 60) + 23154679912344; byte[] bu = BitConverter.GetBytes(value); //高位 uint high = BitConverter.ToUInt32(bu, 4); //低位 uint low = BitConverter.ToUInt32(bu, 0); ulong val1 = (ulong)low; ulong val2 = ((ulong)high) << 32; ulong val3 = val1 | val2; if (val3 == value) { Console.WriteLine("Success"); }
Ok!