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

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

转载于:https://www.cnblogs.com/wishFreedom/p/3262124.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值