当前位置: 代码迷 >> Sql Server >> 字符串转换,该怎么处理
  详细解决方案

字符串转换,该怎么处理

热度:42   发布时间:2016-04-24 18:49:21.0
字符串转换
从硬件底层采集的是一个16进制转成了十进制的数值,如‘木’字,转成16进制是0xC4BE,但采集的十进制为48836,转成CONVERT(VARBINARY,48836) = 0xBEC4,高低八位互换了,有什么系统函数可以让16进制的高低8位互换?而且可以直接转成字符串?

如:字符串'木n5',采集到的数值为48836和13678,有什么系统函数可以高效的直接通过这些数值转成字符串。

谢谢!
------解决方案--------------------
DECLARE @a VARBINARY(2)
DECLARE @b1 INT,@c1 INT 

set @a=0xBEC4
SELECT @b1= (CONVERT(INT,@a) & 0xFF00)/256
SELECT @c1= (CONVERT(INT,@a) & 0x00FF)*256
SELECT CONVERT(VARBINARY(2), @b1 
------解决方案--------------------
@c1)
--result
/*
0xC4BE
*/

SELECT UNICODE('木')

------解决方案--------------------
其实就是高位右移2位(就是除256)低位左移2位(就是乘256)

DECLARE @J INT, @K INT;
SET @J = 48836;SET @K = 13678;
SELECT CONVERT(VARBINARY(2),(@J%256*256)+(@J/256)), CONVERT(VARBINARY(2),(@K%256*256)+(@K/256))
--result
/*
0xC4BE, 0x6E35
*/
  相关解决方案