|
0 / 0 / 0
Регистрация: 13.12.2014
Сообщений: 4
|
|
Как работают побитовые сдвиги?13.04.2007, 19:36. Показов 88176. Ответов 58
Метки нет (Все метки)
0
|
|
| 13.04.2007, 19:36 | |
|
Ответы с готовыми решениями:
58
Побитовые сдвиги Побитовые сдвиги
|
|
27 / 26 / 1
Регистрация: 03.03.2007
Сообщений: 4
|
|
| 14.04.2007, 16:00 | |
Сообщение было отмечено как решение
Решение
Все банально просто...
![]() val << n - это сдвиг влево переменной val на n разрядов. то же самое что умножение на 2 в определенной степени. пример: int val = 4; int temp = val << 3; в результате temp=32. по другому это val*(2^3); val >> n - это сдвиг вправо переменной val на n разрядов. то же самое что деление на 2 в определенной степени. пример: int val = 4; int temp = val >> 2; в результате temp=1. по другому это val/(2^2); Вот в принципе и все... ![]() Желаю удачи
26
|
|
|
12 / 12 / 4
Регистрация: 16.03.2007
Сообщений: 109
|
|
| 15.04.2007, 13:17 | |
|
Скачай книгу про C++. Вот цитата из рукодовства:
Операции сдвига << и >> группируют слева направо. Обе выполняют одно обычное арифметическое преобразование над своими операндами, каждый из которых должен быть целым. В этом случае правый операнд преобразуется к типу int; тип результата совпадает с типом левого операнда. Результат неопределен, если правый операнд отрицателен или больше или равен длине объекта в битах. - стр 270 - сдвиговое_выражение: выражение << выражение выражение >> выражение Значением Е1 << Е2 является Е1 (рассматриваемое как битовое представление), сдвинутое влево на Е2 битов; освободившиеся биты заполняются нулями. Значением Е1 >> Е2 является Е1 , сдвинутое вправо на Е2 битовых позиций. Гарантируется, что сдвиг вправо является логическим (заполнение нулями), если Е1 является unsigned; в противном случае он может быть арифметичевким (заполнение копией знакового бита).
0
|
|
|
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
|
|
| 03.09.2013, 19:59 | |
|
А можно ли как-то получить старший сдвинутый бит при побитовом сдвиге влево?
Т.е. есть число 1001001 применяем операцию сдвига влево на 1 бит какой-то функцией my_func_shift(int a) получаем 0010010, но функция возвращает сдвинутый старший бит единицу. Есть такая функция в плюсах?
0
|
|
|
|
|
| 03.09.2013, 20:05 | |
|
тема старая.
нафига тебе получать этот бит? А если сдвиг не на 1 влево, а на 2,3...n? Не легче отдельной операцией получить старшие биты, сдвинув исходное число на n-1 вправо?
0
|
|
|
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
|
||||
| 03.09.2013, 20:10 | ||||
|
0
|
||||
|
|
||
| 03.09.2013, 20:28 | ||
![]() Короче, ответ: нет.
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||||||
| 03.09.2013, 20:36 | |||||||
|
но можно сделать
1
|
|||||||
|
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
|
||
| 03.09.2013, 20:43 | ||
|
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 03.09.2013, 20:56 | ||
|
и кто тебе сказал что винда "система реального времени"
1
|
||
|
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 209
|
||||||||||||||||
| 26.12.2017, 20:35 | ||||||||||||||||
|
Если надо установить биты 7-0 RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 регистра UCSRB
И каким образом тогда значение регистра становится равным сумме этих сдвигов, тоже не совсем понятно, обьясните, пожалуйста, в чем тут дело? (то есть то, что эта операция их устанавливает в 1, это точно известно,т.к. везде так написано. И программа с таким текстом работает. Но нигде не могу найти обьяснения, как это выводится из правил операции побитового сдвига) Добавлено через 14 минут то есть понятно, что если эти биты равны 0, то 1 как раз в них и установится, а если нет? Она ведь сьедет в другой бит тогда, а может быть его значение не нужно менять? А ведь операция предварительного обнуления этих битов не была записана, т.е. мы надеемся, что после RESET они нулевые? А ведь есть некоторые биты, значения которых по дефолту как раз "1". Обьясните мне пожалуйста эту хитрость. Добавлено через 1 минуту я имел в виду биты
Добавлено через 5 минут то есть почему просто не пишут в таком случае:
0
|
||||||||||||||||
|
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
||
| 26.12.2017, 20:47 | ||
|
Чесн, не знаком с таким интерфейсом.
RXEN и TXEN имеют постоянные значения? В рамках какого числа живет UCSRB (...,8,16,32,... бит) ?
0
|
||
|
|
|||||||
| 26.12.2017, 20:56 | |||||||
|
ты имел в виду UCSRB |= 0x18 design_m, а какая разница так или так?
0
|
|||||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||
| 26.12.2017, 21:08 | |||||||
0
|
|||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 26.12.2017, 21:21 | |
|
design_m, ну и что не понятно?
например TXEN=5 а RXEN=1( подробней смотри даташит на свой микроконтроллер) итого UCSRB=(1<<1)|( 1<<5); UCSRB=(0x02)|( 0x20); UCSRB=0x22; и такие вопросы лучше задавать в https://www.cyberforum.ru/microcontrollers/ быстрей ответят
0
|
|
|
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,822
|
|
| 26.12.2017, 21:26 | |
|
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 26.12.2017, 21:29 | ||
|
0
|
||
|
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,822
|
||
| 26.12.2017, 21:39 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 209
|
|||||||||||||||||||||||||||||
| 26.12.2017, 22:55 | |||||||||||||||||||||||||||||
|
так это я просто ошибся, по инерции
конечно, там надо было b а не x писать. Но суть вопроса же не меняется - в общем случае ведь неизвестно, какие значения у битов по дефолту? Добавлено через 15 минут
Я имею в виду, в общем случае, если вдруг бит не 0, то ведь тогда такая запись не установит его в 1 (судя по правилам битовых сдвигов) и хочу понять, в чем тут дело, раз все таким способом пользуются. (на самом деле я просто глупо переписываю этот код в свои программы, и всё работает, но хочется понять смысл этой записи) Добавлено через 4 минуты
Но везде пишут не
0
|
|||||||||||||||||||||||||||||
| 26.12.2017, 22:55 | |
|
Помогаю со студенческими работами здесь
20
Программа на побитовые сдвиги
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|