1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
||||||
1 | ||||||
Битовые операции - перемещение бит для unsigned int01.03.2012, 21:13. Показов 6550. Ответов 12
Метки нет (Все метки)
Помогите разобраться,
задание: Создайте функцию, которая перемещает биты для unsigned int на 30 бит в право, причем выходящие при сдвиге за правую границу переменной биты должны "вталкиваться" в переменную с левой стороны.
0
|
01.03.2012, 21:13 | |
Ответы с готовыми решениями:
12
Битовые операции, n-ый бит Изменить знак числа типа int на противоположный, используя битовые операции. Доступны ли побитовые операции с unsigned char типом (одно-байтовой переменной) без неявного приведения к INT Как исправить ошибку невозможно преобразовать аргумент 1 из "unsigned int" в "unsigned int []"? |
13 / 13 / 6
Регистрация: 05.12.2011
Сообщений: 84
|
|
01.03.2012, 21:47 | 2 |
если в 31 разряде стоит единица
смести ть 1 бит вправо число++ иначе сместить на 1 бит вправо
0
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
||||||
01.03.2012, 21:49 | 3 | |||||
Как-то так
1
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
|||||||||||
01.03.2012, 22:04 [ТС] | 5 | ||||||||||
0
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
||||||
01.03.2012, 22:31 [ТС] | 7 | |||||
Я просто, только начал изучать С++, по этому не знал, что тут нету вложенных функций.
0
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
|
01.03.2012, 23:51 | 8 |
http://codepad.org/hPEZQkUT
P.S. Можно даже так: http://codepad.org/P5yWxHLW =) P.P.S. Всё это, конечно же, для sizeof( int ) == 4
1
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
|
02.03.2012, 00:44 [ТС] | 9 |
0
|
80 / 78 / 10
Регистрация: 29.12.2011
Сообщений: 183
|
||||||
02.03.2012, 10:35 | 10 | |||||
1
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
||||||||||||||||
02.03.2012, 23:34 [ТС] | 11 | |||||||||||||||
Не могли бы вы объяснить, что каждая строчка делает? Что то я толком не понимают
Извините за глупые вопросы.
0
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
|
03.03.2012, 01:03 | 12 |
1) Сдвигаем самый правый бит в самую левую позицию.
2) Сдвигаем биты на 1 позицию вправо. 3) Накладываем битовым "или" два числа, чтобы установить тот бит, что был крайним справа стал крайним слева. Пример ( для 8 разрядов, для 32 - аналогично ). Число в битовом представлении: 11000101 1.1 Берем крайний справа бит 11000101 1.2 Выделяем его ( x & 1 ) 00000001 1.3 Перемещаем в начало, получаем 10000000 2.1 Сдвигаем начальное число, получаем 11000101 >> 1 = 01100010 3.1 Делаем побитовое или 10000000 | 01100010 = 11100010
1
|
1 / 1 / 4
Регистрация: 28.09.2011
Сообщений: 113
|
|
03.03.2012, 01:10 [ТС] | 13 |
0
|
03.03.2012, 01:10 | |
03.03.2012, 01:10 | |
Помогаю со студенческими работами здесь
13
Для чего нужны битовые операции? Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int. Битовые операции, битовые поля. Битовые поля. Обращение к unsigned long Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |