这样的数据16进制转到10进制

lhltmja 2010-09-20 03:49:04
16进制数据1C AB 怎么能换算得到28.67啊



...全文
97 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhltmja 2010-09-20
  • 打赏
  • 举报
回复
帮忙解决阿 兄弟们
lhltmja 2010-09-20
  • 打赏
  • 举报
回复
16进制数据1C AB 怎么能换算得到28.67啊 我按通常的方法转换只能得到28 171
ws_hgo 2010-09-20
  • 打赏
  • 举报
回复
--十进制转为十六进制

DECLARE
@binary varbinary(255),
@str_return varchar(255)

SELECT
@binary = CONVERT(varbinary(255),29327795562177529)


EXEC master.dbo.xp_varbintohexstr @binary, @str_return OUTPUT
SELECT
结果 = reverse(@str_return)

/*
结果
__________________________
008613974878369F10000011x0
*/

--十六进制转为十进制
CREATE FUNCTION dbo.f_hex_dec(@s varchar(16))
RETURNS bigint
AS
BEGIN

--参数不得含'0'~'9'、'a'~'f'、'A'~'F'之外的任意字符(首尾空格除外),否则返回0
DECLARE @i int,@result bigint
SELECT @i=0,@result=0,@s=RTRIM(LTRIM(UPPER(REVERSE(@s))))
WHILE @i<LEN(@s)
BEGIN
IF SUBSTRING(@s,@i+1,1) not between '0' and '9' and SUBSTRING(@s,@i+1,1) not between 'A' and 'F'
BEGIN
SELECT @result=0
break
END
SELECT @result=@result+(CHARINDEX(SUBSTRING(@s,@i+1,1),'0123456789ABCDEF')-1)*POWER(16,@i),@i=@i+1
END
RETURN @result
END
GO
SQLCenter 2010-09-20
  • 打赏
  • 举报
回复
select convert(int,0x1c) + convert(int,0xab)/1000.0

? <> 28.67 啊

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧