用sql server进行10进制和16进制转换 hextoint inttohex
作者: szliszt, 出处:Blog, 责任编辑: 李书琴,
2007-11-07 09:27
本文详细介绍了用sql server进行10进制和16进制转换的技巧……
| create function hextoint(@h varchar(8)) returns bigint begin declare @r bigint set @r=0 declare @i bigint set @i=1 while @i<=len(@h) begin set @r=@r+ convert(int, ( case when substring(@h,@i,1)<='9' then substring(@h,@i,1) when substring(@h,@i,1)<='A' then '10' when substring(@h,@i,1)<='B' then '11' when substring(@h,@i,1)<='C' then '12' when substring(@h,@i,1)<='D' then '13' when substring(@h,@i,1)<='E' then '14' when substring(@h,@i,1)<='F' then '15' end )) *power(16,len(@h)-@i) set @i=@i+1 end return @r end go create function inttohex(@i int) returns varchar(15) begin --declare @i int --set @i=11259375 declare @r varchar(10) set @r='' while @i/16>0 begin set @r= (case when (@i % 16)<=9 then convert(varchar(1),@i % 16) when (@i % 16)=10 then 'A' when (@i % 16)=11 then 'B' when (@i % 16)=12 then 'C' when (@i % 16)=13 then 'D' when (@i % 16)=14 then 'E' when (@i % 16)=15 then 'F' end) +@r --select @r,@i set @i=@i/16 end --select @r,@i if @i>0 set @r=(case when (@i % 16)<=9 then convert(varchar(1),@i % 16) when (@i % 16)=10 then 'A' when (@i % 16)=11 then 'B' when (@i % 16)=12 then 'C' when (@i % 16)=13 then 'D' when (@i % 16)=14 then 'E' when (@i % 16)=15 then 'F' end)+@r -- select @r return @r end go |
浙公网安备 33010602011771号