SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » CRC32 (чтобы как у всех)
CRC32 [сообщение #3859] Thu, 30 November 2023 15:57 Переход к предыдущему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 150
Зарегистрирован: August 2022
Senior Member
Firebird 4.0.3
SQL> select
CON>     hash( 'Z' using CRC32 )
CON>   from
CON>     rdb$database;

        HASH
============
  1733803097  (0x6757BC59)
"Руководство по языку SQL СУБД Firebird 4.0" утверждает, что для расчета берется полином 0x04C11DB7.
Однако вот здесь, например,
    https://crccalc.com/?crc=Z&method=crc32&datatype=asc ii&outtype=0
среди разных вариантов полученный результат не находится, а хотелось бы. Встроенный в Java алгоритм, тоже отталкивающийся от 0x04C11DB7, дает результат 0x59BC5767, как и в первой строке таблицы калькулятора. Уже 2 против 1, другие источники тоже встали на сторону большинства.

Это баг, фича или я чего-то не понимаю? Хотелось бы получить контрольную сумму, согласующуюся с внешними генераторами.

P.S.
О, сорри, увидел! Это же зеркальное отражение! Не знаю, насколько правильно интерпретируется здесь integer, во-всяком случае, понятно, как добиться нужного результата.

P.P.S.
По-моему, все-таки неправильно. Но менять теперь нельзя, это уже сакральное знание.

[Обновления: Thu, 30 November 2023 16:07]

Известить модератора

 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: Новый веб-сайт firebirdsql.org
Следующая тема: Новые возможности Firebird 5.0. SQL
Переход к форуму:
  


Текущее время: Mon Nov 25 06:46:04 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00900 секунд