二进制的反函数会产生意外结果

时间:2016-10-26 05:03:25

标签: sql-server tsql sql-server-2012 binary reverse

我在sqlserver

中尝试二进制到整数以进行迁移
declare @little binary(4) set @little = 0x95916c00
select @little as [Litttle], convert(binary(4), reverse(@little)) as Big

预期:0x006c9195 实际:0x006c9591

我想utf-encoding识别'0x9591'就是一个字...... 它是如何解决的?

2 个答案:

答案 0 :(得分:1)

这样的事情可能会得到结果(在varchar变量中)。

declare @little binary(4) 
set @little = 0x95916c00
declare @string varchar(100)
declare @reversed_string varchar(100)

select @string = master.sys.fn_varbintohexstr(@little)

select @reversed_string = substring(@string, 1, 2) + reverse(substring (@string, 3, len(@string)))

select @reversed_string

答案 1 :(得分:0)

  

为什么你想只收集最后一个字符?

以防有人希望将整个二进制转换为varchar 试试这个,

declare @little binary(4) set @little = 0x95916c00

select reverse(master.dbo.fn_varbintohexstr (@little))