【问题标题】:How to store integers efficiently in bytes ?如何以字节有效地存储整数?
【发布时间】:2014-03-03 14:11:35
【问题描述】:

我正在寻找一种以字节为单位存储整数的好方法。

情况如下: 我有两个整数,值 1 是“1857”(11 位),值 2 是“14”(4 位)和 2 个字节(16 位)。 我正在寻找的是将 2 个整数存储在 2 个字节中。这意味着剪切第一个整数,将 8 位放在第一个字节中,其余的加上第二个整数在第二个字节中。我还需要让它们重新组合在一起。

有没有办法或 .net 类来做到这一点? 我找到了 BitConverter 类,但这不是我要找的,因为这个类只将一个整数转换为一个完整的字节数组。

【问题讨论】:

    标签: c# arrays integer byte bitconverter


    【解决方案1】:

    您可以使用位运算符:按位和 (&),或 (|),以及左移 (>):

    int value1 = 1857;
    int value2 = 14;
    
    int result = value1 | (value2 << 11);
    

    要取回原始值,您必须将其反转:

    int result1 = result & 0x7ff; // 1857
    int result2 = result >> 11; // 14
    

    【讨论】:

      猜你喜欢
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      相关资源
      最近更新 更多