【问题标题】:How to get bitstring length of integer in oracle pl/sql?如何在 oracle pl/sql 中获取整数的位串长度?
【发布时间】:2011-02-01 17:01:57
【问题描述】:

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

我想将 INT 转换为 BIT STRING 然后 LENGTH( LTRIM(BIT STRING, '0') )'

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

    可以使用下面的公式得到整数n(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
    

    【讨论】:

    • 哇,没想到会这么简单;]
    • 数学。没有它你就活不下去,而且啤酒也不够。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多