Oracle二進位制與十進位制轉換

壹頁書發表於2015-12-28
求123的二進位制編碼

方法一:
  1. SELECT REPLACE(sys_connect_by_path(DECODE(bitand(123, power(2, ceil(log(2, 123)) - level)), 0, '0''1'), '.'),'.',NULL)  
  2. FROM dual  
  3. WHERE level         = ceil(log(2, 123))  
  4.   CONNECT BY level <= ceil(log(2, 123));  

結果:1111011

方法二:
  1. select ltrim(translate(ltrim(dump(convert(translate(to_char(123, 'FMXXXXXXXX'),  
  2.                                                     '0123456789ABCDEF',  
  3.                                                     '熱壬紉扔扇繕梢捎胰疑乙矣尤由右佑'),  
  4.                                           'zhs16gbk')),  
  5.                              'TypLen =0123456789'),  
  6.                        '123456789, :',  
  7.                        '1'),  
  8.              '0')  
  9.   from dual;  

結果:1111011

這兩個方法網上看到的.寫的真是好娛樂.

二進位制轉十進位制
  1. select bin_to_num(1,1,1,1,0,1,1) from dual;  
結果:123

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1966211/,如需轉載,請註明出處,否則將追究法律責任。

相關文章