有两个问题:1、将一个LONG型数值,在内存中存放占4个字节,现要求将这四个字节分别转存到 BYTE数组A(1)-A(4)中, 并且将高字节放前,即高字节存放在A(1)中   低字节置后,即低字节存放在A(4)中比如 SHUZHI =&H12345678  转存完后, A(1)= &H12  , A(2)= &H34  , A(3)= &H56  , A(4)= &H782、根据 A(1)= &H12  , A(2)= &H34  , A(3)= &H56  , A(4)= &H78   生成数值为&H12345678的 SHUZHI。

解决方案 »

  1.   


    int i = 0x12345678;
    byte[] bytes = BitConverter.GetBytes(i);
    Array.Reverse(bytes);\\\\\\byte[] bytes = {0x12, 0x34, 0x56, 0x78};
    Array.Reverse(bytes);
    int i = BitConverter.ToInt32(bytes, 0);
      

  2.   

    LS已经解答,我来接点分吧,嘿嘿[align=center]********************************************************
    本内容用 CSDN小秘书 回复
    每天回帖即可获得10分可用分!
    ********************************************************
    [/align]
      

  3.   

    最简单就取出来移位。
    long lg = x;
    (byte)(lg >> 4);
      

  4.   

    int   val; 
    byte[] bytes =BitConverter.GetBytes(val); 
    Array.Reverse(bytes);
      

  5.   


    ********************************************************
    本内容用 CSDN小秘书 回复
    每天回帖即可获得10分可用分!
    ********************************************************
      

  6.   

    C#里面LONG型数据是64位8个字节的,怎么能用4个字节存储呢
      

  7.   

    取出来移位,或进行byte[] bytes = BitConverter.GetBytes(i);都可以,楼上已解答
      

  8.   

    楼上回答全都不对,其实就是把本机字节序转成BigEndian,也就是网络字节序,很简单的,直接用IPAddress.HostToNetworkOrder(i),如果要数组就是BitConverter.GetBytes(IPAddress.HostToNetworkOrder(i))