История изменений
Исправление impfp, (текущая версия) :
«сложно реализовать на других языках»
Хрен его знает, хрен его знает… Наверное, я волшебник, раз смог :)
Пацкаль
function qspCRC( data: PByte; len: Integer ): Integer;
var
ptr: PByte;
begin
result := 0;
ptr := data;
while len > 0 do begin
result := (qspCRCTable[(result and $FF) xor (ptr^)] xor result shr 8) xor $D202EF8D;
inc(ptr);
dec(len)
end
end;
ЦШарп
public unsafe static uint qspCRC (byte* data, int len)
{
byte* ptr = data;
uint crc = 0;
while (len-- > 0) {
crc = (qspCRCTable [(crc & 0xFF) ^ (*ptr)] ^ crc >> 8) ^ 0xD202EF8D;
ptr++;
}
return crc;
}
ЗЫ почитал наконец тред, тут много таких, так что тема невозможности или лсожности как-то не раскрыта
Исправление impfp, :
«сложно реализовать на других языках»
Хрен его знает, хрен его знает… Наверное, я волшебник, раз смог :)
Пацкаль
function qspCRC( data: PByte; len: Integer ): Integer;
var
ptr: PByte;
begin
result := 0;
ptr := data;
while len > 0 do begin
result := (qspCRCTable[(result and $FF) xor (ptr^)] xor result shr 8) xor $D202EF8D;
inc(ptr);
dec(len)
end
end;
ЦШарп
public unsafe static uint qspCRC (byte* data, int len)
{
byte* ptr = data;
uint crc = 0;
while (len-- > 0) {
crc = (qspCRCTable [(crc & 0xFF) ^ (*ptr)] ^ crc >> 8) ^ 0xD202EF8D;
ptr++;
}
return crc;
}
Исправление impfp, :
«сложно реализовать на других языках»
Хрен его знает, хрен его знает… Наверное, я волшебник, раз смог :)
Пацкаль
function qspCRC( data: PByte; len: Integer ): Integer;
var
ptr: PByte;
begin
result := 0;
ptr := data;
while len > 0 do begin
result := (qspCRCTable[(result and $FF) xor (ptr^)] xor result shr 8) xor $D202EF8D;
inc(ptr);
dec(len)
end
end;
ЦШарп
public unsafe static uint qspCRC (byte* data, int len)
{
byte* ptr = data;
uint crc = 0;
while (len-- > 0) {
crc = (qspCRCTable [(crc & 0xFF) ^ (*ptr)] ^ crc >> 8) ^ 0xD202EF8D;
ptr++;
}
return crc;
}
И результат одинаковый выплевывают
Исходная версия impfp, :
«сложно реализовать на других языках»
Хрен его знает, хрен его знает… Наверное, я волшебник :)
Пацкаль
function qspCRC( data: PByte; len: Integer ): Integer;
var
ptr: PByte;
begin
result := 0;
ptr := data;
while len > 0 do begin
result := (qspCRCTable[(result and $FF) xor (ptr^)] xor result shr 8) xor $D202EF8D;
inc(ptr);
dec(len)
end
end;
ЦШарп
public unsafe static uint qspCRC (byte* data, int len)
{
byte* ptr = data;
uint crc = 0;
while (len-- > 0) {
crc = (qspCRCTable [(crc & 0xFF) ^ (*ptr)] ^ crc >> 8) ^ 0xD202EF8D;
ptr++;
}
return crc;
}
И результат одинаковый выплевывают