Как получить битовую длину целого числа в оракуле PL / SQL? - PullRequest
1 голос
/ 01 февраля 2011

Как я могу вычислить битовую длину целого числа в Oracle PL / SQL?

Я хотел бы получить что-то вроде приведения INT к BIT STRING, а затем LENGTH( LTRIM(BIT STRING, '0') )'

1 Ответ

3 голосов
/ 01 февраля 2011

Вы можете использовать следующую формулу, чтобы получить количество символов двоичного представления целого числа 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...