|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.01.2012, 19:15 | #1 |
Пользователь
Регистрация: 06.11.2011
Сообщений: 21
|
Вывести числа, из диапазона от n до m у которых, количество единичных разрядов в двоичном представлении числа нечетно
Вывести числа, из диапазона от n до m у которых, количество единичных разрядов в двоичном представлении числа нечетно. Использовать операции сдвига и побитового умножения.
Хотелось бы увидеть примеры. |
03.01.2012, 19:26 | #2 |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
Код:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
03.01.2012, 19:28 | #3 |
Пользователь
Регистрация: 06.11.2011
Сообщений: 21
|
а как перевести из десятичной системы в двоичную?
|
03.01.2012, 19:30 | #4 | |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
Цитата:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
|
03.01.2012, 20:12 | #5 |
Пользователь
Регистрация: 06.11.2011
Сообщений: 21
|
|
03.01.2012, 20:17 | #6 |
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
функция what_is_1 получает на вход число в десятичной системе(n) а на выдает число единиц в двоичном представлении этого числа(s)
вам осталось добавить цикл от n до m и проверку результата функции на четность
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
05.01.2012, 14:40 | #7 | |
Пользователь
Регистрация: 06.11.2011
Сообщений: 21
|
Цитата:
int what_is_1( unsigned long n) //понятно передали число n в функцию { int i,s; for (i=0,s=0; i < sizeof(long) * 8; i++) //здесь что??? { if (n & 1) s++; n >>=1; } // Проверить младший разряд и сдвинуть слово return s; } как я понял S это кол-во единиц в двочном представлении.. не понимаю как работает сам цикл( |
|
05.01.2012, 14:57 | #8 |
Форумчанин
Регистрация: 23.12.2011
Сообщений: 117
|
Код:
1. 0...0110 & 0...0001 = 0...0000 (0 - false) -> не прибавляем s, сдвигаем n влево (n = 0..0011) 2. 0...0011 & 0...0001 = 0...0001 (1 - true) -> прибавляем s, сдвигаем N (n=0...0001) И так далее на следующем шаге прибавляем еще 1, а после него все нули. Результирующее s=2. Последний раз редактировалось AlexDark; 05.01.2012 в 15:00. |
05.01.2012, 15:35 | #9 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
sheff123
Вывести числа, из диапазона от n до m у которых, количество единичных разрядов в двоичном представлении числа нечетно. Использовать операции сдвига и побитового умножения. Хотелось бы увидеть примеры. Пример на C++ Проверено на Visual Studio 2010 Код:
Код:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Восстановление двоичного числа по массиву из значений его разрядов | Lyubimov | Помощь студентам | 3 | 15.04.2011 17:07 |
C++ Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается | maloy0103 | Помощь студентам | 1 | 27.12.2010 00:17 |
Вывести числа целого неотр. числа | Gonzo | Помощь студентам | 11 | 04.05.2010 16:55 |
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m | Sparky | Помощь студентам | 2 | 22.11.2009 21:59 |
Как числа в двоичном виде вывести в столбик по 4 числа? | Equalizer | Общие вопросы C/C++ | 11 | 27.09.2009 14:15 |