|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Доброго времени суток. Подскажите как в FB2.5 в ХП умножить 2 числа Integer, чтобы если результат не поместился в Integer, то его обрезало (как в Делфи). Пробовал так: Код: plsql 1.
и так: Код: plsql 1.
не работает даже так: Код: plsql 1.
Ругается: Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 18:56 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Просто_кодер1, куда обрезало? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:00 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Если в делфи умножить Integer на Integer, в результат (если ожидается тоже Integer) попадут младшие 4 байта. Можно как-то это реализовать в ХП или нужно писать UDF? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:09 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:14 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Не-а. :( k = bin_and(6553 4 * 65536, 0x0FFFFFFFF); ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:19 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Просто_кодер1, зачем такие извраты? Я о попытке впихнуть невпихуемое". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:28 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Кстати это неправильно работает (не обрезает вообще): Код: sql 1. 2.
так работает: Код: sql 1.
В описании функции BIN_AND( <number> [, <number> ...] ), где number = непонятный тип. DarkMasterзачем такие извраты? Я о попытке впихнуть невпихуемое". Нужно кое-какие расчеты добавить, а на чужом сервере проще написать ХП, чем UDF. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:37 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Просто_кодер1Кстати это неправильно работает... тут я тупанул, пардон: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 19:45 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Используя BigInt вроде все получилось, вот только как впихнуть младшие 4 байта BigInt в Integer? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 20:13 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Просто_кодер1вот только как впихнуть младшие 4 байта BigInt в Integer?После обнуления старших бит банальным присваиванием. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 21:01 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Просто_кодер1, Код: sql 1.
или как там остаток от деления ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 21:03 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyПросто_кодер1вот только как впихнуть младшие 4 байта BigInt в Integer?После обнуления старших бит банальным присваиванием. Если бы.... Так ошибка: Код: sql 1.
и так ошибка: Код: sql 1.
Cobalt747Просто_кодер1, Код: sql 1.
или как там остаток от деления Так результат 0: Код: sql 1.
так ошибка: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 22:30 |
|
Умножение больших чисел.
|
|||
---|---|---|---|
#18+
Кажется понял в чем проблема при преобразовании. Может кому пригодится. Integer это -2147483648 до 2147483647. Именно в этот диапазон и нужно впихивать 0xFFFFFFFF. Т.е. если BigInt больше 2147483647, то делаем из него отрицательное, и уже его преобразовываем в Integer. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2016, 22:48 |
|
|
start [/forum/topic.php?fid=40&msg=39260708&tid=1562116]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 410ms |
0 / 0 |