Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Oracle и побитовые операции   Найти похожие ветки 

 
Michail Dalakov ©   (2004-02-28 12:12) [0]

Как известно в Oracle есть пакет для выполнения побитовых операций с типом данных RAW. Как проделать то же самое с типом Number не прибегая к преобразованию типов


 
Reindeer Moss Eater ©   (2004-02-28 12:30) [1]

BITAND
Для целых положительных аргументов


 
Michail Dalakov ©   (2004-02-28 12:40) [2]

Спасибо, странно что эта ф-ия недокументирована


 
Michail Dalakov ©   (2004-02-28 14:05) [3]

А есть ли ф-ия побитового ОR? И как она выглядит в этом случае?


 
Reindeer Moss Eater ©   (2004-02-28 14:29) [4]

Нету.
Но ее можно эмулировать.

исходное значение
Result:=2; -- $0010

Поднять третий бит справа
Result := BITAND(result,11) + 4

Поднять четвертый бит справа
Result := BITAND(result,7) + 8


 
Michail Dalakov ©   (2004-02-28 15:19) [5]

Ну да, но если надо установить несколько бит, то это будет столько же операций +2^n, правда в приведенном примере я не понял почему не просто

Поднять третий бит справа
Result := result + 4

Поднять четвертый бит справа
Result := result + 8


 
Reindeer Moss Eater ©   (2004-02-28 15:20) [6]

А если он уже поднят?


 
Reindeer Moss Eater ©   (2004-02-28 15:24) [7]

то это будет столько же операций +2^n,

Поднять третий и четвертый бит справа

result := BITAND(result,3) + 12

Одна операция


 
Michail Dalakov ©   (2004-02-28 15:42) [8]

To [6] Сoгласен
To [7] Да, но в этом случае надо держать массив, где количество
элементов = 2*2^n, n-количество бит, и делать
result := BITAND(result,A[i]) + B[i]


 
Reindeer Moss Eater ©   (2004-02-28 15:44) [9]

LarryAllison@oracle.com


 
Reindeer Moss Eater ©   (2004-02-28 15:49) [10]

Кроме того никто не запрещает реализовать OR на встроенной яве


 
Michail Dalakov ©   (2004-02-28 16:03) [11]

Согласен,
Спасибо, особенно за Reindeer Moss Eater ©   (28.02.04 12:30) [1]



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
3-1077708878
Vlad40
2004-02-25 14:34
2004.03.28
Не могу поймать EDatabaseError


4-1073768458
tytus
2004-01-11 00:00
2004.03.28
Нуль-терминал в OLE-строку.


14-1074854262
Sergey_Masloff
2004-01-23 13:37
2004.03.28
надежная работа сервера delphi.mastak.ru


1-1078949604
White
2004-03-10 23:13
2004.03.28
Преобразование типов! (Вопрос второй)


8-1068984456
Gaus
2003-11-16 15:07
2004.03.28
MediaPlayer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский