|
побитовый сдвиг
|
|||
---|---|---|---|
#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 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
D129А сдвиг итп - знать надо. Бывает, что пишутся интеграции с устройствами, которые не IBM..... :-) А где там побитовый сдвиг нужен? Ну, вот в том же .NET есть классы для работы со всякими портами. А некоторыми железками надо управлять, посылая им всякие команды через эти порты в виде кодов. Где там побитовый сдвиг может быть нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 06:37 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoderD129А сдвиг итп - знать надо. Бывает, что пишутся интеграции с устройствами, которые не IBM..... :-) А где там побитовый сдвиг нужен? Ну, вот в том же .NET есть классы для работы со всякими портами. А некоторыми железками надо управлять, посылая им всякие команды через эти порты в виде кодов. Где там побитовый сдвиг может быть нужен? Например посчитать контрольную сумму команды. Или если устройство принимает битовую маску для установления своих выходов в состояния вкл/выкл ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 08:30 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoderНе знаю побитовый сдвиг и горжусь этим! хороший тролль, годный ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 08:40 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
ИзопропилHomeCoderНе знаю побитовый сдвиг и горжусь этим! хороший тролль, годный Это было сказано в контексте применения побитового сдвига везде и всюду. По ссылке пройдите, что я на прошлой странице оставил - везде все деления на 2, на 3 и прочие подобные операции заменяются на всякие битовые операции - "чтобы было быстрее", ага. Это тот случай, когда знание побитового сдвига только вредит. Незнание, соответственно, не вредит. Вообще, какая-то нездоровая тенденция в наше время пошла - программисты на языках высокого уровня кичатся, что знают некоторые низкоуровневые оптимизации, пихают их везде и всюду и гордятся этим. Это как раз тот случай, когда универские курсы по программированию во вред пошли. Самоучки, учившие только сам высокоуровневый язык и некоторые области рядом - для решения своих задачь, не имевшие кучу всяких ненужных курсов, типа "архитектура ЭВМ полувековой давности" и "пишем в машинных кодах", недоумевают, к чему тут эти побитовые выпендрёжи. Тогда уж надо было идти микроконтроллеры программировать и на ассемблере писать - это там битики руками двигают. А среди высокоуровневых паттернов ваши побитовые сдвиги как огниво на космическом корабле. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 09:14 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
авторНезнание, соответственно, не вредит приносит пользу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 09:14 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
авторпрограммисты на языках высокого уровня кичатся, что знают некоторые низкоуровневые оптимизации, пихают их везде и всюду и гордятся этим. Это как раз тот случай, когда универские курсы по программированию во вред пошли. Самоучки, учившие только сам высокоуровневый язык и некоторые области рядом - для решения своих задачь, не имевшие кучу всяких ненужных курсов, типа "архитектура ЭВМ полувековой давности" и "пишем в машинных кодах", недоумевают, к чему тут эти побитовые выпендрёжи Вот, кстати, похожая история недавно была. Пришёл такой студентик к старшему работу сдавать, а у студентика везде эти самые "оптимизации", сдвиги, маски-куяски и прочая хрень вместо обычного деления-умножения и набора параметров и перечислений - для какой-то ширпотребной программки типа "ещё один асечно-вконтактовый клиент". Старшой не понял, зачем эта хрень тут нужна. А студентик потом среди своих такой начинает пальцы гнуть "да этот типа тимлид нихрена даже азов не знает - это ж на первом курсе универа мы проходили!". Идиоты малолетние. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 09:18 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoder, 1) Тема то 5-летней давности, был ли смысл поднимать? 2) Побитовые операции, как и любой инструмент, удобны в своей области применения. Например, установка флагов. Да, имхо бессмысленно делить на 2 смещением битов, но это как раз таки пример неправильного применения инструмента. Хотя... На Хабре читал про один из конкурсов про поиск простых чисел. Самым эффективным оказалось решение, где автор грамотно применял работу с битами. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 09:42 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Arm79Да, имхо бессмысленно делить на 2 смещением битов, но это как раз таки пример неправильного применения инструмента. бессмысленность в том, что компилятор сам выбирает в этом случае нужную команду ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 10:20 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
ИзопропилHomeCoderНе знаю побитовый сдвиг и горжусь этим! хороший тролль, годныйДа ну. Закомплексованный невежда он, а не тролль. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 11:56 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
skyANAИзопропилпропущено... хороший тролль, годныйДа ну. Закомплексованный невежда он, а не тролль. А ведь ты прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 11:58 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
skyANAИзопропилпропущено... хороший тролль, годныйДа ну. Закомплексованный невежда он, а не тролль. А о себе ты как думаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 11:59 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
Arm79HomeCoder, 1) Тема то 5-летней давности, был ли смысл поднимать? 2) Побитовые операции, как и любой инструмент, удобны в своей области применения. Например, установка флагов.На вскидку: посчет контрольных сумм... вычисление хэш-функций... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 11:59 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoderskyANAпропущено... Да ну. Закомплексованный невежда он, а не тролль. А о себе ты как думаешь?Нормально я о себе думаю, чтобы не сглазить ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 12:02 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
skyANAHomeCoderпропущено... А о себе ты как думаешь?Нормально я о себе думаю, чтобы не сглазить В приметы веришь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 12:41 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
skyANAHomeCoderпропущено... А о себе ты как думаешь?Нормально я о себе думаю, чтобы не сглазить А что эта картинка слишком часто появляется? http://www.sql.ru/forum/images/smoke.gif Стеснительный ты человек. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 12:42 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoderskyANAпропущено... Нормально я о себе думаю, чтобы не сглазить В приметы веришь?Конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 16:11 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
HomeCoderskyANAпропущено... Нормально я о себе думаю, чтобы не сглазить А что эта картинка слишком часто появляется? http://www.sql.ru/forum/images/smoke.gif Стеснительный ты человек.А то ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 16:11 |
|
побитовый сдвиг
|
|||
---|---|---|---|
#18+
salomесть byte a = 1; нужно в нем закодировать разные значения: если (условие1), тов первом разряде 1 , если (!условие1), то 0 если (условие2), тов во втором разряде 1 , если (!условие2), то 0 и т.д. единица могут быть в нескольких разрядах одновременно a <<= 1; - это если бы двигать одну и туже единицу, а как их выставлять в нужный разряд?? и как потом расшифровать разряды enum + FlagsAttribute Вам в помощь и не нужно ни какаких сдвигов ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 18:53 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402615]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
458ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 901ms |
0 / 0 |