create function fn_hextobinary (@hex varchar(8))
returns varchar(255)
asbegin
declare @base tinyint
declare @string varchar(255)
declare @return varchar(255)
declare @div int
declare @char char(1)
declare @pos int
declare @digit int
declare @result varchar(16)
select @string= '0123456789abcdef'
select @pos = 1
select @result= ''
select @return= ''
select @base=2
while (@pos<>len(@hex)+1)
begin
if substring(@hex,@pos,1) not in ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f')
begin
return null
endselect @digit=charindex(substring(@hex,@pos,1),@string)-1
while (@digit<>0)
begin
select @div=@digit/@base
select @result=convert(varchar(1),(@digit % @base)) + @result
select @digit=@div
endselect @return=@return + case when len(@result)<4 then replace(space(4-len(@result)) + @result,' ','0') else @result end
select @result=''
select @pos=@pos+1
end
return @return
end
十進位制轉十六進製制
問 題 描 述 十 六 進 制 數 是 在 程 序 設 計 時 經 常 要 使 用 到 的 一 種 整 數 的 表 示 方 式 它 有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 共 16 個符號,分別表示十進位制數的 0 15。十六進製制的計數方法是滿16 進 1,所以十進位制數...
十六進製制轉十進位制
問題描述 從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。注 十六進製制數中的10 15分別用大寫的英文本母a b c d e f表示。樣例輸入 ffff 樣例輸出 65535 include include includeint main int len,i,j d...
十進位制轉十六進製制
問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...