|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
|
Циклический сдвиг битов в байте влево или вправо28.09.2016, 15:20. Показов 10300. Ответов 19
Метки нет (Все метки)
Кто-нибудь пробовал реализовать такую задачу на С++. Если да, то какой алгоритм?
Например, если 32 << 10, то в результате должны получить 128. Читаю Уоррен Генри - Алгоритмические трюки для программистов - 2014, он пишет (screenshot во вложении). Используем формулу для циклического сдвига влево на n разрядов: y <- (x<<n)|(x>>(32-n)). В результате получаем: y <- (32 << 10) | (32 >> (32-10)) y <- (32 << 10) | (32 >> 22) y <- 32768 | 0 y = 32768 Результаты явно отличатся друг от друга. Или может быть я не правильно считаю?
0
|
|
| 28.09.2016, 15:20 | |
|
Ответы с готовыми решениями:
19
Циклический сдвиг массива влево и вправо Осуществить циклический сдвиг битов в целом числе a на k позиций вправо |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.09.2016, 15:25 | |
|
0
|
|
|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
|||
| 28.09.2016, 15:37 [ТС] | |||
|
0
|
|||
|
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
|
|
| 28.09.2016, 15:51 | |
|
Дима_Кирсанов, чтобы сдвиги проверить можно так делать
32 << 10 это эквивалент 32 * 210, естественно при сдвиге вправо деление на два в степени сдвига
0
|
|
|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
|
| 28.09.2016, 16:13 [ТС] | |
|
0
|
|
|
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
|
||
| 28.09.2016, 16:45 | ||
|
Дима_Кирсанов, в асcемблере есть циклический сдвиг и арифмитический
пример циклического сдвига на 1 исходное число 1001 --- после сдвига 0011 пример арифмитического сдвига на 1 исходное число 1001 --- после сдвига 0010 я думаю речь об этом Добавлено через 4 минуты Добавлено через 2 минуты Циклический сдвиг подразумевает то что самое крайнее левое число запишется в начало, а все остальное сдвинет позицию на +1
1
|
||
|
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
|
||
| 28.09.2016, 16:50 | ||
|
Добавлено через 1 минуту Аааа все я понял, это нам надо было получить 128, все вопрос отпал
0
|
||
|
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
|
|
| 28.09.2016, 16:52 | |
|
0
|
|
|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
|
| 28.09.2016, 19:05 [ТС] | |
|
0
|
|
|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
||||||||||
| 28.09.2016, 20:44 [ТС] | ||||||||||
|
y <- (32<<(7%8))|(32>>(32-(7%8))) y <- (32<<7)|(32>>25) y <- 4096|0 y = 4096 y <- (x<<n)|(x>>(32-n)), для x=32 и n=11 y <- (32<<(11%8))|(32>>(32-(11%8))) y <- (32<<3)|(32>>29) y <- 256|0 y = 256
0
|
||||||||||
|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
|
| 28.09.2016, 21:14 [ТС] | |
|
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.09.2016, 21:15 | |
|
Тогда char, а не int используй. И в тех формулах из книжки 32 замени на 8.
0
|
|
|
|
|||
| 28.09.2016, 21:20 | |||
|
0
|
|||
|
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
|
||||||||
| 28.09.2016, 21:34 [ТС] | ||||||||
0
|
||||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.09.2016, 21:55 | |
|
Зачем символы-то присвоил? Обычные числа используй.
И n можно оставить int, это же просто показатель.
0
|
|
| 28.09.2016, 21:55 | |
|
Помогаю со студенческими работами здесь
20
Циклический сдвиг целого числа на n разрядов влево и вправо Циклический сдвиг односвязного списка, организованного структурами, на N элементов вправо/влево
Где и когда уместно применять операции << (сдвиг влево) и >> (сдвиг вправо)? Циклический сдвиг битов в байте влево или вправо Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|