【问题标题】:Retrieving 16-bit big endian value from byte array?从字节数组中检索 16 位大端值?
【发布时间】:2011-08-24 17:50:13
【问题描述】:

我有一个大端字节序的无符号 16 位整数:0x01f1,但它们位于字节数组中,如下所示:

    Array
  [0]  0x01
  [1]  0xf1 

如何将 Array[0] 与 Array[1] “加入”,以便我可以恢复我的 0x01f1 值?

【问题讨论】:

    标签: c# bytearray endianness


    【解决方案1】:

    您可以使用shift and bitwise operators 组合两个数组元素,如下所示:

    byte[] array = new byte[] { 0x01, 0xF1 };
    
    int result = (array[0] << 8) | array[1];
    // result == 0x01F1
    

    【讨论】:

      【解决方案2】:

      使用左移运算符如下:

      int myNum = a[0];
      myNum = (myNum<<8);
      myNum = myNum | a[1];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-09
        • 1970-01-01
        • 2015-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多