| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [СИ] поменять байты в зеркальном порядке |
| Автор: Steven 10.1.2008, 16:13 | ||
| Задание: В длинном целом числе N числе поменять байты в зеркальном порядке. Проверьте код пожалуйста, в чем ошибка???
Пример вывода на экран! Enter a number (ENTER 0 TO EXIT): 3 The number in a binary system before processing: 11 The number in a binary system after processing: 11 The number after processing: 2 !!!((ДОЖНО БЫТЬ 3)) и Enter a number (ENTER 0 TO EXIT): 13 The number in a binary system before processing: 1101 The number in a binary system after processing: 1011 The number after processing: 3 !!!((ДОЖНО БЫТЬ 11)) В чем ошибка??? должно же быть по-другому что еще надо изменить??? |
| Автор: PPS05 10.1.2008, 19:54 | ||
Мне кажется (не проверял
И в строке 48 не надо делить на 2. Дело в том, что вы в 46-ой получаете в N1 удвоенное количество единиц, т.е. "The number after processing" у вас - просто количество единиц в числе, в то время, как вам нужно из двоичного представления получить число. |
| Автор: PPS05 10.1.2008, 20:10 | ||
Судя по тексту, автор хотел поменять биты. В 32-битовом числе можно так:
Взято из "Генри Варрен. Алгоритмистические трюки для программистов". Суть - меняются соседние биты, потом - соседние через 2 и т.д. |
| Автор: Steven 11.1.2008, 20:59 |
| PPS05, Спасибо за помощь!!! |