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

Начало » Использование СУБД » Firebird, HQbird, InterBase » Числовое представление массива байт (хочу число)
Числовое представление массива байт [сообщение #3095] Thu, 31 August 2023 14:54 Переход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 150
Зарегистрирован: August 2022
Senior Member
PSQL, Firebird 4.0

Есть varbinary(4) c 4-мя байтами внутри:
x = cast( hex_decode( '7fffffff' ) as varbinary(4) )
Как из этих байт получить целое число типа integer, которые они собой и представляют?

Как это сделать математически, я понимаю, но это алгоритм какой-никакой писать надо. Нельзя ли попроще, с помощью встроенных функций?

В "обычной" среде я бы просто положил 4 байта в область памяти, занятой целочисленной 32-битной переменной, и дело с концом, но здесь таких возможностей нет.
Re: Числовое представление массива байт [сообщение #3096 является ответом на сообщение #3095] Thu, 31 August 2023 15:17 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 150
Зарегистрирован: August 2022
Senior Member
Все, придумал, всем спасибо!
i = cast( ( '0x' || hex_encode( :x ) ) as integer )
Не так быстро, как копировать память, но все ж работает, и это главное.
Re: Числовое представление массива байт [сообщение #3097 является ответом на сообщение #3096] Fri, 01 September 2023 00:35 Переход к предыдущему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 416
Зарегистрирован: August 2022
Senior Member
А что, varbinary вместо integer того же размера и требование обработки в сервере вместо приложения это новая разновидность мазохизма?..
Предыдущая тема: isc_invalid_boolean_usage
Следующая тема: isc_net_connect_err
Переход к форуму:
  


Текущее время: Wed Dec 18 21:02:59 GMT+3 2024

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