有时候考虑到平台之间的通用性,可能把一个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");
            }    

  c#Ulong用一个高位Uint和低位Uint表示

Ok!

相关文章:

  • 2021-07-27
  • 2022-12-23
  • 2021-05-11
  • 2021-12-01
  • 2021-09-26
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-17
  • 2022-02-20
  • 2021-09-22
  • 2021-07-12
  • 2022-12-23
  • 2022-02-06
  • 2022-12-23
相关资源
相似解决方案