|
Битовые значения
|
|||
---|---|---|---|
#18+
26.02.2018 15:23, WildSery пишет: > Человеку нужно кларион отфайрбёрдить хорошее выражение. ёмкое! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 15:25 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Спасибо всем кто откликнулся. Что-то начинает вырисовываться. Например если мне нужно прочитать только один бит (например 6) из 8, я делаю сначала смещение на 5 бит (bin_shr(relat,5)), а затем читаю значение 6 бита - bin_and(...,0x01). Если мне надо прочитать 4 бита, начиная с 5 позиции, я должен сместиться на 4 бита bin_shr(relat,4), а затем прочитать значение следующих 4 бит: bin_and(...,0x0f). Если я ошибаюсь - поправьте меня. Но на том примере, где мне это надо было, проверив контрольные значения, получается все правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 17:03 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Мимопроходящий, Краткость - сестра, да. akrush, авторЯ нашел ее и читал. Но не понял как :( Помогите примером пожалуйста авторЕсли я ошибаюсь - поправьте меня. Читай азы - битовые операции (прямо вот так можешь и вбивать в гугл). Не нужно никуда ничего двигать. Материала в сети, я думаю, вагон и тележка. И с картинками и с описанием. И даже видео. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 17:13 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Всё верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 17:26 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Вот так попробуй. Твоё число Value. Если bin_and (Value, 1) возвращает не ноль, то первый (нулевой) бит 1. Если bin_and (Value, 2) возвращает не ноль, то второй бит 1. Если bin_and (Value, 4) возвращает не ноль, то третий бит 1. Если bin_and (Value, 8) возвращает не ноль, то четвёртый бит 1. И т.д. На каждое восьмибитовое число нужно восемь раз наложить маску типа "00001000". Битовая операция "И" возвращает единицу, если оба числа с единицей (в смысле бита). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 17:32 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
KreatorXXI, спасибо, но я так понимаю это больше подходит если мне надо сравнивать. а мне надо просто расписать все биты по столбцам и потом я от битовых полей хочу избавится. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 18:39 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush> а мне надо просто расписать все биты по столбцам и потом я от битовых полей хочу избавится. Ну так и расписывай. firebird_smart_field_bit_1 = bin_and(clarion_shit_field, 1); firebird_smart_field_bit_2 = bin_and(clarion_shit_field, 2); firebird_smart_field_bit_3 = bin_and(clarion_shit_field, 4); firebird_smart_field_bit_4 = bin_and(clarion_shit_field, 8); ... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 22:09 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushНапример если мне нужно прочитать только один бит (например 6) из 8, я делаю сначала смещение на 5 бит (bin_shr(relat,5)), а затем читаю значение 6 бита - bin_and(...,0x01).Во-первых, смещать вправо надо не на 5, а на 4, а во вторых - занафига? Тебе его надо проверить как флаг, а не превратить в числовое значение все биты слева, включая пятый. Выставленному в единицу пятому биту соответствует десятичное число 32 (см. таблицу) или шестнадцатеричное 0x10. Всё проще! Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:14 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSeryrdb_devкакой бит машинного слова какому десятичному числу соответствуетДля битовой маски бесполезные знания.Что, как не битовую маску в десятичном представлении, я использовал сообщением выше? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:16 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
rdb_devakrushНапример если мне нужно прочитать только один бит (например 6) из 8, я делаю сначала смещение на 5 бит (bin_shr(relat,5)), а затем читаю значение 6 бита - bin_and(...,0x01).Во-первых, смещать вправо надо не на 5, а на 4, а во вторых - занафига? Тебе его надо проверить как флаг, а не превратить в числовое значение все биты слева, включая пятый. Выставленному в единицу пятому биту соответствует десятичное число 32 (см. таблицу) или шестнадцатеричное 0x10. Всё проще! Код: sql 1.
Мипардон! СИшная привычка не писать в операторе условия "> 0"... Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:19 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
rdb_devВо-первых, смещать вправо надо не на 5, а на 4Чот я совсем зарапортавался... На 5! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:22 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
rdb_devили шестнадцатеричное 0x10 Как же неподецки может плющить с утра... 0x20, конечно же! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:33 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Предварительный просмотр и перечитать. После каждой правки и с небольшим интервалом. P.S. Была с старом "Вокруг света" небольшая заметка о селькупах (северная народность). Называлась "Жду стою". Сбор в дорогу занимал два-три дня и несколько часов перед выездом полностью готовый путешественник просто сидел на нартах. Зачем?Жду, стою. Может я что забыл, может кому другому что понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:43 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
rdb_devЧто, как не битовую маску в десятичном представлении, я использовал сообщением выше?Я о том и говорю, что ты один такой здесь. Если нужно найти N-ный бит, нормальные люди его формулой находят 2^(N-1), ну или битовым сдвигом bin_shr, а не по табличке пальцем ищут. У тебя, наверное, и в коде написано что-то вроде (для наглядности) ? Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 09:57 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSery, я нифига не понимаю. Какой еще "bit_number"? Если выставлено, скажем, три первых бита, надо в кейсе описать все 8 вариантов комбинаций? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 10:24 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSeryУ тебя, наверное, и в коде написано что-то вроде (для наглядности) ? Код: sql 1. 2. 3. 4. 5.
А, я понял - "bit_number", это счетчик сдвигов и для каждого сдвига ты предлагаешь описать условие в кейсе? Тогда не понятно, нафига городить огород с bit_and на каждый бит в отдельности. Уж проще, тогда, как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Не многовато ли писанины? Куда проще: Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 10:42 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
[quot rdb_dev] Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Так! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 11:14 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, так и у нас "посидим на дорожку" не спроста! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 11:15 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Вместо bin_and уже пошёл bit_and. Чем дальше в лес... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 11:30 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
KreatorXXIВместо bin_and уже пошёл bit_and. Чем дальше в лес... Да, капец ваще! Не приведи Господь вам такую работёнку, как у меня сейчас... Полный [ЦЕНЗУРА]! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 11:57 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
rdb_devТогда не понятно, нафига городить огород с bit_and на каждый бит в отдельности. Уж проще, тогда, как-то так:Ну то есть ты признаёшь, что твоя "таблица десятичных значений" в реальной жизни не применима? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 13:47 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSeryrdb_devТогда не понятно, нафига городить огород с bit_and на каждый бит в отдельности. Уж проще, тогда, как-то так:Ну то есть ты признаёшь, что твоя "таблица десятичных значений" в реальной жизни не применима?А это, по твоему что, как не та же самая связка "номер разряда"<=>"десятичное значение"? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 14:14 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSery, лучше бы поправил мою потенциальную ошибку, которая может всплыть при установленном в smallint самом старшем бите (при отрицательных числах), помятуя про конвертацию smallint в bigint. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 15:31 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
rdb_dev, Ты тут дурочку валяешь, а мне ещё и поправлять? Ты знаешь, куда. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2018, 11:44 |
|
|
start [/forum/topic.php?fid=40&msg=39607348&tid=1561125]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 489ms |
0 / 0 |