Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2022, 14:31   #1
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию Система счисления (объяснить).

У меня есть код.
Мне надо написать комментарии что какая строка делает, main() не надо там все ясно.
Сам код я понял, но плохо.
буду благодарен.
Код:
#include <iostream>

#include <cmath>

using namespace std;

// Функция для преобразования восьмеричного числа в десятичное

int vosem_v_deset(int octalNumber)

{

int decimalNumber = 0, i = 0, rem;

while (octalNumber != 0)

{

rem = octalNumber % 10;

octalNumber /= 10;

decimalNumber += rem * pow(8, i);

++i;

}

return decimalNumber;

}

int main()

{

setlocale(LC_ALL, "Russian");

int octalNumber; cout << "Введите восьмеричное число ";

cin >> octalNumber;

cout << octalNumber << " в восьмеричном " << vosem_v_deset(octalNumber) << " в десятичных";

return 0; }
REZR вне форума Ответить с цитированием
Старый 26.05.2022, 14:43   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
int vosem_v_deset(int octalNumber)

{
// Переменные, используемые в функции
int decimalNumber = 0; // результат, начинаем с 0
int i = 0; // Счетчик, порядок
int rem; // Остаток от деления

// Цикл, пока исходное число не равно 0
while (octalNumber != 0)

{ // Начато тело цикла

  rem = octalNumber % 10; // Вычисление остатка от деления на 10

  // Пропущено: if ( rem >= 8 ) break; // Проверка десятичной записи числа на соответствие 8-му представлению

  octalNumber /= 10; // Деление на 10. После этого остаток от деления этого прохода получить нельзя, порядок строк важен

  decimalNumber += rem * pow(8, i); // Вычисление x = x + rem * (8 в степени i)

  ++i; // Увеличение порядка

} // Закончено тело цикла

// Пропущено: if (octalNumber != 0) decimalNumber = 0; // При ошибке перевода возвращаем 0.

// Результат: x = an * 8 ^ n + an - 1 * 8 ^ (n-1) + ... + a1 * 8 ^ 1 + a0 * 8 ^ 0
// Что является представлением 8-миричного числа

return decimalNumber; // Возврат результата

}
macomics вне форума Ответить с цитированием
Старый 26.05.2022, 15:01   #3
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию

macomics, Спасибо, стало понятнее.
REZR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пользователь ввел число и я хочу проверить в какой системе счисления это число. И чтоб эта система счисления вывелась на экран. Как такое реализовать Shilen Python 3 27.12.2017 16:56
Система счисления AlexeyI Общие вопросы C/C++ 6 03.10.2015 15:46
Система счисления student13rus Помощь студентам 1 03.10.2014 23:56
Система счисления 6am6yk Помощь студентам 2 14.05.2012 11:31
Система счисления medic357 Помощь студентам 2 29.09.2010 17:05