gpt4 book ai didi

firebird - 如何将整数转换为十六进制表示法?

转载 作者:行者123 更新时间:2023-12-01 23:49:03 26 4
gpt4 key购买 nike

使用:火鸟 2.5.3

在存储过程 (PSQL) 中,将数字从十六进制表示法转换为十进制表示法很容易:

DECLARE VARIABLE I INTEGER;

BEGIN

I = CAST('0x0FFFE' AS INTEGER); -- I will have the value 65534

如何实现逆向? IE。从十进制表示法转换为十六进制表示法?

最佳答案

不使用 UDF(这意味着使用外部库文件),解决方案是编写一个存储过程来完成此操作:

SET TERM ^^ ;
CREATE PROCEDURE INTTOHEX (
INPUTNUMBER BigInt)
returns (
OUTPUTNUMBER VarChar(8))
AS
DECLARE VARIABLE Q BigInt;
DECLARE VARIABLE R BigInt;
DECLARE VARIABLE T BigInt;
DECLARE VARIABLE H VARCHAR(1);
DECLARE VARIABLE S VARCHAR(6);

begin
/* Max input value allowed is: 4294967295 */

S = 'ABCDEF';

Q = 1;
OUTPUTNUMBER = '';
T = INPUTNUMBER;
WHILE (Q <> 0) DO
BEGIN

Q = T / 16;
R = MOD(T, 16);
T = Q;

IF (R > 9) THEN
H = SUBSTRING(S FROM (R-9) FOR 1);
ELSE
H = R;

OUTPUTNUMBER = H || OUTPUTNUMBER ;
END


SUSPEND;
end ^^
SET TERM ; ^^

您可以从标准 SQL 或其他存储过程调用此存储过程,如下所示:

例如:
SELECT OUTPUTNUMBER FROM INTTOHEX(65534);

关于firebird - 如何将整数转换为十六进制表示法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com