Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
10.03.2020, 17:09
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
Всем привет! Пытаюсь решить задачку, как можно из строки с числом к примеру 234 получить результат '01110'. Значение 2, 3 и 4 это позиция в строке '00000'. Т.е 2 это единичка на втором бите. 3-ка в третьем бите. Это все можно сделать в Select'е ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2020, 17:13
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
Задача какая-то сферично вакуумная Сдвиг и побитовый OR Поскольку по формулировке битов быть может не больше 9 штук (1..9), захордкодить 9-ть substr'ов в SELECT'е проблем быть не должно. https://docs.oracle.com/cd/E22583_01/DR/help/Bit_Binary_Functions.html#DALc02a_2726006080_257082 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2020, 17:36
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
Dr_Grizzly, Код: plsql 1. 2. 3. 4. 5. 6.
пример Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2020, 17:39
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
протупил - реверс не нужен: Код: plsql 1. 2. 3. 4. 5.
пример Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2020, 17:41
|
|||
---|---|---|---|
Побитовая конвертация |
|||
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2020, 17:59
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
Dr_Grizzly Т.е 2 это единичка на втором бите ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.03.2020, 09:30
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
xtender Dr_Grizzly Т.е 2 это единичка на втором бите Я попробовал функциешку нарисовать loop exit when v_cnt > length(p_val); v_num := substr(p_val, v_cnt, 1); v_res1 := utl_raw.bit_or(v_res1,rpad(lpad('1',v_num,'0'),6,'0')); --Догоняем нулями до 6 знаков, чтобы было четное количество, для преобразования в байт v_cnt := v_cnt + 1; end loop; return v_res1; которую в селект запихнул, впринципе работает )) но вот в самом селекте было б интересней )) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.03.2020, 09:54
|
|||
---|---|---|---|
|
|||
Побитовая конвертация |
|||
#18+
SY Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
SY. Изящное решение! Жаль что у меня 11 оракл (( а он не знает lateral ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.03.2020, 10:42
|
|||
---|---|---|---|
Побитовая конвертация |
|||
#18+
Dr_Grizzly, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
.... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&tablet=1&tid=1881483]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 262ms |
total: | 407ms |
0 / 0 |