如何在oracle pl/sql中获取整数的位字符串长度?

如何在oracle pl/sql中获取整数的位字符串长度?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,如何在Oracle的PL/SQL中计算整数的位长度 我希望得到类似于将INT转换为位字符串,然后将LTRIMBIT字符串的长度“0”您可以使用以下公式获得整数n>0的二进制表示形式的字符数: 哇,我没想到这会这么简单;]数学没有它你活不下去,啤酒也不够。 ceil(log(2, n + 1)) SQL> SELECT n, ceil(log(2, n + 1)) num_of_char 2 FROM (SELECT ROWNUM n FROM dual CONNECT BY L

如何在Oracle的PL/SQL中计算整数的位长度


我希望得到类似于将INT转换为位字符串,然后将LTRIMBIT字符串的长度“0”

您可以使用以下公式获得整数n>0的二进制表示形式的字符数:


哇,我没想到这会这么简单;]数学没有它你活不下去,啤酒也不够。
ceil(log(2, n + 1))

SQL> SELECT n, ceil(log(2, n + 1)) num_of_char
  2    FROM (SELECT ROWNUM n FROM dual CONNECT BY LEVEL <= 64);

         N NUM_OF_CHAR
---------- -----------
         1           1
         2           2
         3           2
         4           3
         5           3
         6           3
         7           3
         8           4
        [...]
        15           4
        16           5
        [...]
        31           5
        32           6
        [...]
        63           6
        64           7