十六進製制轉十進位制

2021-04-12 20:40:43 字數 1122 閱讀 3212

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,以此類推...