五.将十进制转成十六进制

--创建函数
create function  [dbo].[hex](@cardno int )
returns varchar (100)
as
begin
    declare  @temp_mod int
    declare  @i int
    declare  @result varchar(100)
    declare  @temp_x int
    declare  @result_values int
    set  @result=''
    set  @i=1
    set  @temp_x=0
while  @cardno>0
    begin
       set  @temp_mod=@cardno%16
       set  @cardno=@cardno/16
       set  @result=(case  @temp_mod when  10 then  'A'
                                  when  11 then  'B'
                                  when  12 then  'C'
                                  when  13 then  'D'
                                  when  14 then  'E'
                                  when  15 then  'F'
                                  else  ltrim(str(@temp_mod)) end  )+@result
    end
return @result
end
 
--测试示例
select [dbo].[hex](1808) as Hex
 
--运行结果
/*
Hex
----------
710
*/
 
 
--第二版
/****************************
  整数转换成进制
  作者:不得闲
  QQ: 75492895
  Email: appleak46@yahoo.com.cn
****************************/
go
Create Function IntToHex(@IntNum int)
returns varchar(16)
as
begin
  declare @Mods int,@res varchar(16)
  set @res=''
  while @IntNum <> 0
  begin
    set @Mods =@IntNum % 16
    if @Mods > 9
      set @res = Char(Ascii('A')+@Mods-10)+@res
    else
      set @res = Cast(@Mods as varchar(4)) + @res
    set @IntNum = @IntNum/16
  end
  return @res
end
 
--测试示例
select dbo.IntToHex(1808)
 
--运行结果
/*
710
*/

 

posted on 2013-12-19 10:18  Dralion  阅读(193)  评论(0)    收藏  举报

导航