|
|
@ -61,7 +61,6 @@ public static class BitUtls
|
|
|
|
{
|
|
|
|
{
|
|
|
|
length = length / 8;
|
|
|
|
length = length / 8;
|
|
|
|
var bt = new byte[length];
|
|
|
|
var bt = new byte[length];
|
|
|
|
start = start / 8;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (var i = start; i < start + length; i++) bt[i - start] = bytes[i];
|
|
|
|
for (var i = start; i < start + length; i++) bt[i - start] = bytes[i];
|
|
|
|
|
|
|
|
|
|
|
@ -244,17 +243,23 @@ public static class BitUtls
|
|
|
|
|
|
|
|
|
|
|
|
public static ushort Byte2UInt16(byte[] bytes, int startBit, int length)
|
|
|
|
public static ushort Byte2UInt16(byte[] bytes, int startBit, int length)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (length < 9 || length > 16) throw new ArgumentException("length should be less then 17 and greater then 8");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var sub = Sub(bytes, startBit, length);
|
|
|
|
var sub = Sub(bytes, startBit, length);
|
|
|
|
|
|
|
|
if (sub.Length == 1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return Convert.ToUInt16(sub[0]);
|
|
|
|
|
|
|
|
}
|
|
|
|
return BitConverter.ToUInt16(sub, 0);
|
|
|
|
return BitConverter.ToUInt16(sub, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static short Byte2Int16(byte[] bytes, int startBit, int length)
|
|
|
|
public static short Byte2Int16(byte[] bytes, int startBit, int length)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (length < 9 || length > 16) throw new ArgumentException("length should be less then 17 and greater then 8");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var sub = Sub(bytes, startBit, length);
|
|
|
|
var sub = Sub(bytes, startBit, length);
|
|
|
|
|
|
|
|
if (sub.Length == 1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return Convert.ToInt16(sub[0]);
|
|
|
|
|
|
|
|
}
|
|
|
|
return BitConverter.ToInt16(sub, 0);
|
|
|
|
return BitConverter.ToInt16(sub, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|