Carpe Programming/oracle
[oracle] 16진수 -> 2진수
nolite
2012. 2. 16. 17:19
[16진수 -> 2진수 로 변환]
SELECT REPLACE(MAX (SYS_CONNECT_BY_PATH(bit, ',')), ',') bin
FROM
(
SELECT COUNT (*) OVER () - LEVEL + 1 level#
, DECODE (TRUNC (deci / POWER (2, LEVEL)),ROUND (deci / POWER (2, LEVEL)), 0,1) bit
FROM
(
SELECT 2911 deci
FROM DUAL
)
CONNECT BY POWER (2, LEVEL - 1) <= deci
)
CONNECT BY PRIOR level# = level# - 1
START WITH level# = 1
결과 : 101101011111
[확인]
SELECT BIN_TO_NUM (1,0,1,1,0,1,0,1,1,1,1,1)
FROM DUAL
결과 : 2911
728x90