2014년 7월 11일 금요일

10진수를 2진수로 바꾸기

중고등학교 수학시간에 10진수를 2진수로 변환하는 방법을 배웠을 것입니다.
대충 방법을 설명해보면...
모릅니다. -_-;;

음... 그래도 조금 생각나는것이... 2로 계속 나누어서... 음...
모르겠네요.

그냥 CONVERT와 REPLACE를 이용해서 10진수를 2진수로 바꾸어보겠습니다.
비트마스크 할일이 있어서 만들어보았습니다.

다음 코드는 10진수 100을 2진수로 만드는 함수입니다.
CREATE FUNCTION FUNC_DEC2BIN (@DEC INT) RETURNS VARCHAR(255)
  
AS
  
BEGIN
        DECLARE @BIN VARCHAR(255)
   
        SET @BIN = SUBSTRING(master.dbo.fn_varbintohexstr(CONVERT(VARBINARY(255), @DEC)), 3, 255)
   
        SET @BIN = REPLACE(@BIN, '0', '0000')
        SET @BIN = REPLACE(@BIN, '1', '0001')
        SET @BIN = REPLACE(@BIN, '2', '0010')
        SET @BIN = REPLACE(@BIN, '3', '0011')
        SET @BIN = REPLACE(@BIN, '4', '0100')
        SET @BIN = REPLACE(@BIN, '5', '0101')
        SET @BIN = REPLACE(@BIN, '6', '0110')
        SET @BIN = REPLACE(@BIN, '7', '0111')
        SET @BIN = REPLACE(@BIN, '8', '1000')
        SET @BIN = REPLACE(@BIN, '9', '1001')
        SET @BIN = REPLACE(@BIN, 'A', '1010')
        SET @BIN = REPLACE(@BIN, 'B', '1011')
        SET @BIN = REPLACE(@BIN, 'C', '1100')
        SET @BIN = REPLACE(@BIN, 'D', '1101')
        SET @BIN = REPLACE(@BIN, 'E', '1110')
        SET @BIN = REPLACE(@BIN, 'F', '1111')
   
        RETURN @BIN
END

댓글 없음:

댓글 쓰기