Форум программистов, компьютерный форум CyberForum.ru

Плавятся мозги от непонятной задачи - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Igor_k
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 8
05.10.2011, 18:35     Плавятся мозги от непонятной задачи #1
Кто может, помогите написать программу, которая меняет местами последний (младший) и предпоследний байты переменной i типа int.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 18:47     Плавятся мозги от непонятной задачи #2
C++
1
i = (i & ~0xFFFF) | ((i & 0xFF) << 8) | ((i >> 8) & 0xFF);
Igor_k
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 8
05.10.2011, 20:10  [ТС]     Плавятся мозги от непонятной задачи #3
Цитата Сообщение от Thinker Посмотреть сообщение
C++
1
i = (i & ~0xFFFF) | ((i & 0xFF) << 8) | ((i >> 8) & 0xFF);
Огромное спасибо! Можешь пожалуйста объяснить, как оно работает?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 20:30     Плавятся мозги от непонятной задачи #4
(i & 0xFF) - выделяем младший байт, а все остальные обнуляем
(i & 0xFF) << 8) - то же самое, но затем сдвигаем на 8 бит влево, то есть этот байт стал предпоследним
(i >> 8) & 0xFF - выделяем предпоследний байт и делаем его младшим байтом
i & ~0xFFFF - обнуляем два младших байта
i = (i & ~0xFFFF) | ((i & 0xFF) << 8) | ((i >> 8) & 0xFF); - по сути, все складываем вместе.
Igor_k
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 8
05.10.2011, 21:09  [ТС]     Плавятся мозги от непонятной задачи #5
Огромная благодарность!

Добавлено через 32 минуты
А что делать с:
В scanf(" %d %f",&a,&c);
Вводить с клавиатуры числа в формате:
- int, float
- int, int
- float, int
- float, double
и выводить их на печать вместе с количеством правильно считанных параметров.
Yandex
Объявления
05.10.2011, 21:09     Плавятся мозги от непонятной задачи
Ответ Создать тему
Опции темы

Текущее время: 03:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru