|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
есть byte a = 1; нужно в нем закодировать разные значения: если (условие1), тов первом разряде 1 , если (!условие1), то 0 если (условие2), тов во втором разряде 1 , если (!условие2), то 0 и т.д. единица могут быть в нескольких разрядах одновременно a <<= 1; - это если бы двигать одну и туже единицу, а как их выставлять в нужный разряд?? и как потом расшифровать разряды ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2009, 15:21 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salom, в цикле, или одно за другим - создаете беззнаковое целое число, = 1 сдвигаете его на нужную позицию - в соответствии с вашей кодировкой битов. складываете с предыдущим (простым сложением можно, но если контролируете чтобы биты не дублировались) по выходу из цикла у вас будет число, с битами, установленными в нужном месте. расшифровка: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2009, 15:34 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
System.Collections.BitArray вам в помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2009, 15:34 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
А как фильтр для датагрид сделать с проверкой : стоит ли в разряде Change единица Код: plaintext 1.
Не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 18:14 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
В лоб никак. SQL не поддерживает битовых операторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 18:20 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Можно использовать следующий фильтр: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 19:12 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salom, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 22:49 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salom, про установку в 0 чушь конечно, надо так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 22:59 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
рпывапыаsalom, про установку в 0 чушь конечно, надо так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну и как этот код в RowFilter использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2009, 23:51 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
aaaa33, зачем код, который что-то модифицирует использовать в фильтре? если надо в SQL то там есть побитовые операции... Код: plaintext 1. 2.
где Change это номер бита (от 0 до 31) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 00:07 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
dsfgwsfdgdfgaaaa33, зачем код, который что-то модифицирует использовать в фильтре? если надо в SQL то там есть побитовые операции... Код: plaintext 1. 2.
где Change это номер бита (от 0 до 31) RowFilter НЕ ПОДДЕРЖИВАЕТ побитовые операции ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 00:39 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
aaaa33, а как этот код в RowFilter использовать?? Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 09:40 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
UgumsМожно использовать следующий фильтр: Код: plaintext 1.
Спасибо, работает ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 10:19 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salomUgumsМожно использовать следующий фильтр: Код: plaintext 1.
Спасибо, работает Только не работает если n - не степень двойки (6,5....) Можно ли эти варианты предусмотреть?? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 11:05 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salomsalomUgumsМожно использовать следующий фильтр: Код: plaintext 1.
Спасибо, работает Только не работает если n - не степень двойки (6,5....) Можно ли эти варианты предусмотреть?? Разлагаешь число на степени двойки, для каждой степени определяешь фильтр, соединяешь фильтры с помощью OR. Например, для 5: 5 = 1 + 4 "Convert((columnName - columnName % 1) / 1, 'System.Int32') % 2 = 1 OR Convert((columnName - columnName % 4) / 4, 'System.Int32') % 2 = 1" Коряво конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 11:35 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Ugums, Код: plaintext
при Status=42 (101010) не срабатывает?? а если Status=16 (10000) срабатывает и Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 12:17 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salomUgums, Код: plaintext
при Status=42 (101010) не срабатывает?? 4 это не разряд, а 2^(разряд - 1). Для 42 3 разряд равен 0 - 101 0 10 salomа если Status=16 (10000) срабатывает и Код: plaintext 1.
Код: plaintext
Ugums Разлагаешь число на степени двойки, для каждой степени определяешь фильтр, соединяешь фильтры с помощью OR. Например, для 5: 5 = 1 + 4 "Convert((columnName - columnName % 1) / 1, 'System.Int32') % 2 = 1 OR Convert((columnName - columnName % 4) / 4, 'System.Int32') % 2 = 1" Коряво конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2009, 12:40 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Gatmanесть в c# такие операторы : &, |, ^ а чем этот вариант не устраивает? & позволяет выставлять и читать 1 или 0 в нужном разряде ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 11:29 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Не понимаю в чем проблема. Бирёте 1, сдвигаете на тот разряд, который нужно проверить - получаете число Check, после этого Проверяемое значение&Chek==1 значит бит установлен. т.е Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 12:38 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
zebroxGatmanесть в c# такие операторы : &, |, ^ а чем этот вариант не устраивает? & позволяет выставлять и читать 1 или 0 в нужном разряде Повторяю еще раз. DataView.RowFilter НЕ ПОДДЕРЖИВАЕТ побитовые операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2009, 17:30 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
И снова эти преждевременные оптимизации. Непонятно, зачем вообще в языке высокого уровня эти извращения из низкоуровневого мира с экономией на спичках. Ну просто достало уже... Код: c# 1.
Пока не погуглил, что это "быстрое" деление на 2, не понял, на кой чёрт автору понадобилось сдвигать чего-то там. А это он просто хотел выпендриться получить половину длины экрана. Но не просто просто, а очень просто (как в рекламе фирмы Сэлдом) не так ScreenWidth / 2, а вот так... Чтоб никто не догадался. [spoiler] ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2014, 12:30 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Не знаю побитовый сдвиг и горжусь этим! Потому что экономлю время и деньги своему работодателю. Пишу простой и понятный код без изъёбств - другие сотрудники не парят мозг и не тратят время на гугление всякой ненужной хрени из-за моих заскоков. А как у вас с этим дела обстоят? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2014, 12:31 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoderНе знаю побитовый сдвиг и горжусь этим! ... А как у вас с этим дела обстоят? Хорошо. Главное, чтобы в погоне за "чистым кодом" Вы не начали использовать вот это: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
:-) А сдвиг итп - знать надо. Бывает, что пишутся интеграции с устройствами, которые не IBM..... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2014, 12:55 |
|
|
start [/forum/topic.php?fid=20&msg=36098114&tid=1402615]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 158ms |
0 / 0 |