MySQL побитовая операция НЕ не возвращает желаемое значение

Я пытаюсь преобразовать некоторый код PHP в код MySQL. Вот что происходит:

В PHP:
Я пытаюсь использовать поразрядно не на число, и это результат, который я получаю

var_dump(~(17998320));       Result: -17998321

Результат в PHP именно то, что мне нужно.

В MySQL:
Когда я пытаюсь сделать то же самое здесь, я получаю совершенно другой ответ.

select ~(17998320);      Result: 18446744073691553295

Я думаю, это что-то относительно BIGINT. Как я могу повторить поведение, которое я вижу на PHP в MySQL?

3

Решение

Я понял, в чем проблема!

Это дает мне значение в форме комплимента 2. Таким образом, вы можете получить правильное значение, введя его вручную.

select -1 * (~((~(17998320)) - 1))

В любом случае спасибо за помощь 🙂

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector