+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
private static int CalcCheckSum(byte[] BinFile)
{
int length = ((IEnumerable<byte>) BinFile).Count<byte>();
if (length > 0)
{
int num = 0;
for (int index = 0; index < length; ++index)
num = num + (int) BinFile[index] & (int) ushort.MaxValue;
}
return num;
}
Израильский инновационный вариант rolling hash'а :facepalm:
Здесь есть всё: и альтернативное определение длины массива, и обилие приведений к инту, и придающая особую таинственность битовая операция &
На первый взгляд может показаться, что результатом будет простая сумма всех байт, но не дайте себя обмануть! Результат - это суперсекретная(!!!11) сумма всех байт.
PsychoTeras,
14 Ноября 2017
0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
public ReadFile(string path)
{
byte[] BinFile = File.ReadAllBytes(path);
if (((IEnumerable<byte>) BinFile).Count<byte>() <= 25)
return;
this._Version = BinFile[0].ToString() + "." + BinFile[1].ToString() + "." + BinFile[2].ToString();
}
Я вам тут израильского инжиниринга принёс. Читаем файл, читаем версию.
В этом коде прекрасно всё...
PsychoTeras,
14 Ноября 2017