LINUX.ORG.RU

История изменений

Исправление seiken, (текущая версия) :

Я бы такое решение не принял, предложил бы переделать или принял бы с оценкой 3. Смысл лабы явно в том, чтобы человек разобрался с логическими побитовыми операциями, сдвигами, а не нагуглил стандартный класс C++.

ТС. Если тебе надо готовое решение, тебе надо идти в раздел Job этого форума (тем более, что ты готов заплатить). Если же хочешь сам разобраться, план действий в общих чертах такой:

  1. Разобраться, что такое «unsigned char», и в каком диапазоне значения он может хранить. Подсказка: в один байт значение 256 не влезет; В результате корректируешь условие задачи и продолжаешь дальше;
  2. Разобраться, что такое побитовые логические операции; Подсказка: тебе нужна побитовая «И»;
  3. Разобраться, что такое побитовый сдвиг; Подсказка: тебе нужен сдвиг влево, и сдвигать нужно единицу;
  4. Разобраться, как работает цикл for. Подсказка: надо проверить каждый разряд данного числа => нужен цикл;
  5. Выяснить, что можно использовать результат логической повитовой операции в условии внутри if;
  6. В цикле считать таки ответ, инкрементируя заранее об’явленный счетчик.
  7. Добавляешь вывод результата, но используешь не printf, а std::cout . И код превращается… превращается в C++;
  8. Тестируешь код на вшивость на паре-тройке значений;
  9. С чистой совестью идешь сдаваться преподу.

Список литературы:

  1. Классика: https://ee.kpi.ua/~prat/edu/books/programming/c/1_K_R.pdf там должны быть ответы на все вопросы.
  2. примерчики, которые можно нагуглить.

Исходная версия seiken, :

Я бы такое решение не принял, предложил бы переделать или принял бы с оценкой 3. Смысл лабы явно в том, чтобы человек разобрался с логическими побитовыми операциями, сдвигами, а не нагуглил стандартный класс C++.

ТС. Если тебе надо готовое решение, тебе надо идти в раздел Job этого форума (тем более, что ты готов заплатить). Если же хочешь сам разобраться, план действий в общих чертах такой:

  1. Разобраться, что такое «unsigned char», и в каком диапазоне значения он может хранить. Подсказка: в один байт значение 256 не влезит; В результате корректируешь условие задачи и продолжаешь дальше;
  2. Разобраться, что такое побитовые логические операции; Подсказка: тебе нужна побитовая «И»;
  3. Разобраться, что такое побитовый сдвиг; Подсказка: тебе нужен сдвиг влево, и сдвигать нужно единицу;
  4. Разобраться, как работает цикл for. Подсказка: надо проверить каждый разряд данного числа => нужен цикл;
  5. Выяснить, что можно использовать результат логической повитовой операции в условии внутри if;
  6. В цикле считать таки ответ, инкрементируя заранее об’явленный счетчик.
  7. Добавляешь вывод результата, но используешь не printf, а std::cout . И код превращается… превращается в C++;
  8. Тестируешь код на вшивость на паре-тройке значений;
  9. С чистой совестью идешь сдаваться преподу.

Список литературы:

  1. Классика: https://ee.kpi.ua/~prat/edu/books/programming/c/1_K_R.pdf там должны быть ответы на все вопросы.
  2. примерчики, которые можно нагуглить.