Функция PHP crc32() на серваке возвращает совершенно другие значения - VB
Формулировка задачи:
не знал куда закинуть вопрос - это касается 2 языков
проблема в следующем - функция PHP crc32() на серваке возвращает совершенно другие значения, чем тот же подсчет суммы, только на VB (глюков нет на 10000%, перепробовал 6 разных способов) уже на локальной машине тех же самых файлов.
Выборочно crc 4 фоток -
PHP:
1190633355
22537563
1010289899
-1911090949
те же фотки, но VB:
603184893
944552721
-740024075
-1103042136
КТО ПОДСКАЖЕТ, В КАКУЮ СТОРОНУ КОПАТЬ?
Конвертации HEX-BIN-OCT-DEC перепробованы, результат - нулевой.
И еще - как СУММА может быть отрицательной?
Решение задачи: «Функция PHP crc32() на серваке возвращает совершенно другие значения»
textual
Листинг программы
//===================================
#include"&crc.h"
C_CRCcounter::C_CRCcounter()
{
unsigned long CRC_POLY = 0x047B62D5, c, i, j;
for (i = 0; i < 256; i++)
{
for (c = i << 24, j = 8; j > 0; j--)
c = c & 0x80000000 ? (c << 1) ^ CRC_POLY : (c << 1);
crc_table[i] = c;
}
}
C_CRCcounter::~C_CRCcounter(){}
unsigned long
C_CRCcounter::GetCRC32(unsigned char *buf, unsigned long len)
{
unsigned long sum;
unsigned char *p;
sum = 0xFFFFFFFF;
for (p = buf; len > 0; p++, len--)
sum = (sum << 8) ^ crc_table[(sum >> 24) ^ *p];
return(~sum);
}
//===================================