🐛Fix CRC16 returning a 32-bit value.

This commit is contained in:
2018-02-03 17:43:18 +00:00
parent b50b6c29ca
commit 4f9d2fdb89

View File

@@ -93,7 +93,7 @@ namespace DiscImageChef.Checksums
public byte[] Final() public byte[] Final()
{ {
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian; BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
return BigEndianBitConverter.GetBytes(hashInt ^ CRC16_SEED); return BigEndianBitConverter.GetBytes((ushort)(hashInt ^ CRC16_SEED));
} }
/// <summary> /// <summary>
@@ -104,8 +104,8 @@ namespace DiscImageChef.Checksums
StringBuilder crc16Output = new StringBuilder(); StringBuilder crc16Output = new StringBuilder();
BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian; BigEndianBitConverter.IsLittleEndian = BitConverter.IsLittleEndian;
for(int i = 0; i < BigEndianBitConverter.GetBytes(hashInt ^ CRC16_SEED).Length; i++) for(int i = 0; i < BigEndianBitConverter.GetBytes((ushort)(hashInt ^ CRC16_SEED)).Length; i++)
crc16Output.Append(BigEndianBitConverter.GetBytes(hashInt ^ CRC16_SEED)[i].ToString("x2")); crc16Output.Append(BigEndianBitConverter.GetBytes((ushort)(hashInt ^ CRC16_SEED))[i].ToString("x2"));
return crc16Output.ToString(); return crc16Output.ToString();
} }