2013. 12. 24. 11:09
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].DecToHex') and OBJECTPROPERTY(id, N'IsScalarFunction') = 1)
drop function [dbo].DecToHex
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
/*-------------------------------------------------------------------------
DecToHex
목 적 : 10진수를 16진수 Hex 스트링으로 벼환
EX)
declare @result_val varchar (1000)
set @result_val = dbo.DecToHex (256*256-1,10)
select @result_val
*/-------------------------------------------------------------------------
CREATE FUNCTION DecToHex (@nNum Int -- 10진수 값
, @nLen int ) -- 결과 자리수
RETURNS varchar(1000)
AS
Begin
--SET NOCOUNT ON
DECLARE @i INT
declare @Result varchar (1000)
SET @Result=''
WHILE @nNum > 0
BEGIN
SELECT @Result = CASE @nNum % 16
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
CONVERT(VARCHAR, @nNum % 16)
END + @Result
SET @nNum = @nNum / 16
END
SET @Result = REPLACE(SPACE(@nLen - LEN(@Result)), ' ','0') + @Result
--SET NOCOUNT OFF
return @Result
end
GO
drop function [dbo].DecToHex
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
/*-------------------------------------------------------------------------
DecToHex
목 적 : 10진수를 16진수 Hex 스트링으로 벼환
EX)
declare @result_val varchar (1000)
set @result_val = dbo.DecToHex (256*256-1,10)
select @result_val
*/-------------------------------------------------------------------------
CREATE FUNCTION DecToHex (@nNum Int -- 10진수 값
, @nLen int ) -- 결과 자리수
RETURNS varchar(1000)
AS
Begin
--SET NOCOUNT ON
DECLARE @i INT
declare @Result varchar (1000)
SET @Result=''
WHILE @nNum > 0
BEGIN
SELECT @Result = CASE @nNum % 16
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
CONVERT(VARCHAR, @nNum % 16)
END + @Result
SET @nNum = @nNum / 16
END
SET @Result = REPLACE(SPACE(@nLen - LEN(@Result)), ' ','0') + @Result
--SET NOCOUNT OFF
return @Result
end
GO
