--建立函式
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
endreturn
@result
end
--測試示例
select
[dbo].[hex](1808)
as hex
--執行結果/*
hex
----------
710 */
--第二版
/****************************
整數轉換成進製
****************************/ go
create
function
inttohex
(@intnum
int)
returns
varchar(16
)asbegin
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
asvarchar(4
))+@res
set@intnum
=@intnum/16
endreturn
@res
end
--測試示例
select
dbo.
inttohex
(1808)
--執行結果 /*
710 */
特別說明:
如果資料量比較大,盡量避免使用自定義函式,以免嚴重影響效能。
十六進製制轉成十進位制
string s 7a int i integer.parseint s,16 long l long.parselong s,16 如果是十六進製制的字串要轉換為十進位制的字串,那也可以用上面的辦法,再接個tostring就行 string s 7a string s1 integer.tostr...
彙編實驗 十六進製制轉成十進位制以及十進位制轉十六進製制
十六進製制轉成十進位制 datas segment dbuf dw 3039h 16進製制數3039h為10進製數12345 dval db 5 dup 存放轉換後的資料 dlen dbuf datas ends stacks segment 此處輸入堆疊段 stacks ends codes se...
十進位制轉成二進位制
描述 將乙個 10 進製的數轉換為二進位制數。輸入輸入乙個 10000 位以內的十進位制數。輸出轉換為二進位制後輸出。輸入樣例 1030 輸出樣例 10000000110 一 include include include include using namespace std const int ...