_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈
FrontPage › 기수변환

Contents

[-]
1 10진수를 2 ~ 36진수 중 하나로 변환
2 2진수를 10진수로 변환


1 10진수를 2 ~ 36진수 중 하나로 변환 #

ALTER FUNCTION dbo.ufn_DecToDigit (@Dec BIGINT, @base TINYINT)
RETURNS VARCHAR(63) --
AS
/******************************************************************************************
	작성일:	2005-12-01
	작성자:	http://www.DataBaser.Net/
	SP이름:	ufn_DecToDigit
	SP내용:	
		-10진수를 2 ~ 36진수 중 하나로 변환 

	예제:
		SELECT dbo.ufn_DecToDigit(17, 2) -- 10진수 17을 2진수로 변환
		SELECT dbo.ufn_DecToDigit(17, 8) -- 10진수 17을 8진수로 변환
		SELECT dbo.ufn_DecToDigit(17, 13) -- 10진수 17을 13진수로 변환

	입력변수:
		@ItemInfo BIGINT : 
	, 	@base TINYINT
	반환변수:
	참조문서: 
	고: 
	EDIT HISTORY:
*********************************************************************************************/
BEGIN
	--입력된 값을 2진수로 리턴
	DECLARE 
		@r AS VARCHAR(63)
	,	@alldigits AS VARCHAR(36)
	--SET @base = 2  --2진수면 2, 8진수면 8, 16진수면 16
	SET @alldigits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
	SET @r = ''

	WHILE @Dec > 0
	BEGIN
		SET @r = substring(@alldigits, @Dec % @base + 1, 1) + @r
		SET @Dec = @Dec / @base; 
	END
	 
	RETURN @r
END
GO

2 2진수를 10진수로 변환 #

ALTER FUNCTION dbo.ufn_DigitToDec (@Digit VARCHAR(15))
RETURNS INT
AS
/******************************************************************************************
	작성일:	2005-12-01
	작성자:	http://www.DataBaser.Net/
	SP이름:	ufn_DigitToDec
	SP내용:	
		-2진수를 10진수로 변환 

	예제:
		SELECT dbo.ufn_DigitToDec('0010')

	입력변수:

	반환변수:
	참조문서: 
	고: 
	EDIT HISTORY:
*********************************************************************************************/
BEGIN
	DECLARE @Len INT, @i INT, @r INT, @DigitNum VARCHAR(15)
	SET @Len = LEN(@Digit)
	SET @i = 1
	SET @r = 0
	SET @DigitNum = REVERSE(@Digit)

	WHILE (@i <= @Len)
	BEGIN
		SELECT @r = @r + CASE WHEN 1 = SUBSTRING(@DigitNum, @i, 1) THEN POWER(2, @i-1) ELSE 0 END
		SET @i = @i + 1 
	END

	RETURN @r
END
GO
EditText : Print : Mobile : FindPage : DeletePage : LikePages : Powered by MoniWiki : Last modified 2018-04-13 23:12:53

일의 쾌감은 고됨을 잊게 한다. (호라티우스)