Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
9 / 7 / 4
Регистрация: 26.11.2021
Сообщений: 52

Циклический сдвиг битов

16.02.2023, 14:34. Показов 3313. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Без использования цикла. Циклический сдвиг битов.
n - сколько битов сдвигаем
a - число

Ввод:
n = 2 (может быть отрицательно или больше 32)
a = 3489693698 (0b11010000000000001000000000000010)

Вывод:
10110100000000000010000000000000
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.02.2023, 14:34
Ответы с готовыми решениями:

Циклический сдвиг строки
Циклический сдвиг строки Если записать умную мысль на ленте, замкнутой в кольцо, то начинать ее читать можно с любого места. Возможно,...

Циклический сдвиг строки
Напишите программу, которая будет сдвигать строки на указанное число позиций влево (если сдвиг положительный) или вправо (если...

Циклический сдвиг влево
Циклически сдвиньте элементы списка влево (A переходит на место A, A на место A, …, A переходит на последнее место). ВХОДНЫЕ ДАННЫЕ ...

9
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
16.02.2023, 14:53
Python
1
2
3
n = 2
a = 3489693698
print(bin(a>>n))
0
9 / 7 / 4
Регистрация: 26.11.2021
Сообщений: 52
16.02.2023, 15:00  [ТС]
Parramon, не то. Это обычный сдвиг.
Мне надо без цикла (без срезов строк и т.п., только битовые операции) реализовать

Было:
10111
Стало:
11110
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
16.02.2023, 15:08
Сорри, пропустил этот момент
Python
1
2
3
n = 2
a = bin(3489693698)[2:]
print(a[-n:] + a[:-n])
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
16.02.2023, 17:13
Лучший ответ Сообщение было отмечено Qun как решение

Решение

Python
1
2
3
4
5
6
7
8
n = 2
a = 3489693698
res = ((((-1 + (1 << n)) & a) << a.bit_length() ) | a) >> n
print(bin(a))
print(bin(res))
 
# 0b11010000000000001000000000000010
# 0b10110100000000000010000000000000
2
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
16.02.2023, 18:07
Red white socks, Только для n<0 (по условию) наверно:
Python
1
2
a = 3489693698
n = -2  & (a.bit_length() - 1)
2
9 / 7 / 4
Регистрация: 26.11.2021
Сообщений: 52
16.02.2023, 18:17  [ТС]
Сложновато все это, надо разбираться.
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
16.02.2023, 18:22
Gdez, я не в курсе, что такое отрицательное число битов)
Думаю, это указание для студиозов сделать проверку на ввод.
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
16.02.2023, 18:26
Отрицательное n скорее всего означает сдвиг влево, а положительное - вправо
1
9 / 7 / 4
Регистрация: 26.11.2021
Сообщений: 52
16.02.2023, 19:27  [ТС]
Спасибо, разобрался.

Добавлено через 30 минут
Цитата Сообщение от thyrex Посмотреть сообщение
Отрицательное n скорее всего означает сдвиг влево, а положительное - вправо
>>> rotate(1, 1)
2
>>> rotate(1, -1)
-2147483648
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2023, 19:27
Помогаю со студенческими работами здесь

Циклический сдвиг текста
Дана строка “АЛГОРИТМИСТИКА”, над которой по порядку совершают следующие манипуляции: Сдвигают буквы циклически влево на 7 позиций. ...

Циклический сдвиг строки
У Артемия есть строка s длины n , с которой он уже долго играется. Периодически Артемий циклически сдвигает строку на 1 ...

Осуществить циклический сдвиг элементов матрицы
Осуществить циклический сдвиг элементов матрицы размером m * n (m строк x n столбцов). Сдвиг выполнить вправо на k элементов таким...

Сделать циклический сдвиг массива вправо на 1 элемент
Даны 2 массива (А и В) из n элементов. Записать в новый массив C элементы из массива А которых нет в массиве B. Затем для элементов...

Осуществить циклический сдвиг элементов прямоугольной матрицы на n
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в зависимости от введенного режима), n...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru