Функция 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); } //===================================
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д