有符号整数到有符号十六进制 2 在预言机中的赞美



在表的一列中有一个示例负数。如-1000

期望输出- FC18

我想要的输出FC18在oracle SQL,这是Signed十六进制2的补充

- - - - - -引用https://www.rapidtables.com/convert/number/decimal - hex.html?x= - 1000

您可以使用:

SELECT value,
TO_CHAR(
CASE
WHEN value >= POWER(2,15) OR value < -POWER(2, 15)
THEN NULL
WHEN value < 0
THEN POWER(2,16)
ELSE 0
END + value,
'FM000X'
) AS int_to_2c_hex
FROM   table_name;

对于样本数据:

CREATE TABLE table_name (value) AS
SELECT  +1000 AS value FROM DUAL UNION ALL
SELECT  -1000 FROM DUAL UNION ALL
SELECT     -1 FROM DUAL UNION ALL
SELECT     +1 FROM DUAL UNION ALL
SELECT +32767 FROM DUAL UNION ALL
SELECT -32768 FROM DUAL UNION ALL
SELECT +32768 FROM DUAL UNION ALL
SELECT -32769 FROM DUAL;

输出:

<表类>价值INT_TO_2C_HEXtbody><<tr>100003 e8-1000FC181飞行符10001327677 fff-32768800032768-32769

最新更新