c#是否有办法将byte[]/int32转换为int24 ?

本文关键字:int32 转换 int24 是否 byte | 更新日期: 2023-09-27 17:50:07

我有一个文件。我已经从偏移量05读取了3个字节。那么我如何将byte[]转换为int24呢?或者如果我把这个数组转换成int32然后把这个int32转换成int24,它会工作吗?如何转换?

c#是否有办法将byte[]/int32转换为int24 ?

不直接支持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 );

c#中是否有Int24实现?