C#有没有办法将byte [] / int32转换为int24?

时间:2012-12-30 00:49:22

标签: c#

我有一个档案。我已经从偏移量05中读取了3个字节。那么如何将该byte []转换为int24?或者,如果我将该数组转换为int32然后将该int32转换为int24,它会工作吗?以及如何转换?

1 个答案:

答案 0 :(得分:1)

不直接支持Int24,但是有一个类似的问题描述了如何实现您的需求:

public struct UInt24 {
   private Byte _b0;
   private Byte _b1;
   private Byte _b2;

   public UInt24(UInt32 value) {
       _b0 = (byte)(value & 0xFF);
       _b1 = (byte)(value >> 8); 
       _b2 = (byte)(value >> 16);
   }

   public unsafe Byte* Byte0 { get { return &_b0; } }
   public UInt32 Value { get { return _b0 | ( _b1 << 8 ) | ( _b2 << 16 ); } }

}

UInt24 uint24 = new UInt24( 123 );

Are there any Int24 implementations in C#?