10진수를 2진수로 변환

방법 1.

 

 

 SELECT REPLACE (MAX (SYS_CONNECT_BY_PATH (SIGN (BITAND (DECI, POWER (2, (TRUNC (LOG (2, DECI) + POWER (10, -20)) + 1 - LEVEL)))), ',')), ',') BIT
      FROM (SELECT 6 DECI FROM DUAL)
CONNECT BY POWER (2, LEVEL - 1) <= DECI


방법 2.

SELECT REPLACE (MAX (SYS_CONNECT_BY_PATH (BIT, ',')), ',') BIN
      FROM (    SELECT COUNT (*) OVER () - LEVEL + 1 LVL
                     , DECODE (TRUNC (DECI / POWER (2, LEVEL)), ROUND (DECI / POWER (2, LEVEL)), 0, 1) BIT
                  FROM (SELECT 7 DECI FROM DUAL)
            CONNECT BY POWER (2, LEVEL - 1) <= DECI)
START WITH LVL = 1
CONNECT BY PRIOR LVL = LVL - 1 




2진수를 10진수로 변환

SELECT SUM (SUBSTR (BIN, LEVEL, 1) * POWER (2, LENGTH (BIN) - LEVEL)) DECI
      FROM (SELECT 11101 BIN FROM DUAL)
CONNECT BY LEVEL <= LENGTH (BIN) 



======================================================================================================
======================================================================================================

10진수로 저장한 컬럼 1개의 값으로 체크박스 checked 설정

붉은색 : 컬럼값
파란색 : 체크박스 개수

첫번째 체크박스만 체크 : 1
두번째 체크박스만 체크 : 2
첫번째/두번째 체크박스만 체크 : 3
세번째 체크박스만 체크 : 4
첫번째/세번째 체크박스만 체크 : 5
두번째/세번째 체크박스만 체크 : 6
모든 체크박스 체크 : 7

SELECT REVERSE(LPAD(REPLACE (MAX (SYS_CONNECT_BY_PATH (SIGN (BITAND (DECI, POWER (2, (TRUNC (LOG (2, DECI) + POWER (10, -20)) + 1 - LEVEL)))), ',')), ','), 3, '0')) BIT
      FROM (SELECT 6 DECI FROM DUAL)
CONNECT BY POWER (2, LEVEL - 1) <= DECI 


======================================================================================================
======================================================================================================

Java에서 진수 변환

10진수를 2진수로 변환
Integer.toBinaryString(7)

10진수를 2진수로 변환시 공백 문자열로 채워서 (붉은색이 채워질 문자, 파란색이 자리수)
String.format("%010d", Integer.parseInt(Integer.toBinaryString(7)))

2진수를 10진수로 변환
Integer.valueOf("100", 2)



+ Recent posts