分享

将十进制转成十六进制

 zww_blog 2012-03-15
  

将十进制转成十六进制

分类: SQL函数分享系列

--创建函数

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

*/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约