ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql实现10进制16进制转换函数

sql实现10进制16进制转换函数

原创 Linux操作系统 作者:iDotNetSpace 时间:2010-08-13 15:27:43 0 删除 编辑
--10进制转16进制
create function inttohex(@int10 int)
returns varchar(8)
begin
    
declare @int10 int
    
declare @str16 nvarchar(8)
    
set @str16=''

    
if(@int10>0)
    
begin
        
while @int10>0
        
begin
            
set @str16=substring('0123456789ABCDEF',@int10%16+1,1)+@str16
            
set @int10=@int10/16
        
end
    
end
        
else
        
begin
            
set @str16='0'
        
end
    
return @str16
end


--16进制转10进制
create function hextoint(@str16 varchar(8)) 
returns int 
begin 

    
declare @int10 int 
    
declare @i int     
    
set @int10=0 
    
set @i=1 

    
while @i<=len(@str16) 
    
begin 
        
set @int10=@int10+
            
convert(int,
                (
case   when substring(@str16,@i,1)<='9' then substring(@str16,@i,1)
                    
when substring(@str16,@i,1)<='A' then '10'
                    
when substring(@str16,@i,1)<='B' then '11'
                    
when substring(@str16,@i,1)<='C' then '12'
                    
when substring(@str16,@i,1)<='D' then '13'
                    
when substring(@str16,@i,1)<='E' then '14'
                    
when substring(@str16,@i,1)<='F' then '15' end )) * power(16,len(@str16)-@i) 
        
set @i=@i+1
    
end
    
return @int10 
end

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-670935/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5766042