Логика переполнения Java Int - PullRequest
       1

Логика переполнения Java Int

0 голосов
/ 19 сентября 2018

Я пытаюсь реплицировать логику переполнения / опустошения Java int в SQL (SQL Server 2016).Для чего нужна логика:

(a * b) + c

, где a, b и c могут находиться в диапазоне от -2147483648 до 2147483648 (диапазон int в SQL)

Например, в Javaесли вычислить (135 * 12) + 2147483647, результат -2147482029.В SQL для int это будет ошибка с переполнением.Мне нужно реплицировать логику переполнения / недостаточности Java в SQL, чтобы она работала так же и вырабатывала int.

1 Ответ

0 голосов
/ 19 сентября 2018

Я понял это

declare @result bigint

set @result = ((@a* @b) + @c) % 4294967296
IF @result >= 2147483648 SET @result = @result - 4294967296
IF @result < -2147483648 SET @result = @result + 4294967296
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...