Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_Rabota_4_условие.docx
Скачиваний:
3
Добавлен:
12.07.2022
Размер:
54.24 Кб
Скачать

4. Системы счисления

Позиционные системы счисления — это системы счисления, в которых значение цифры напрямую зависит от её положения в числе.

Например, число 01 обозначает единицу, 10 – десять (в двоичной системе счисления).

Позиционные системы счисления позволяют легко производить арифметические расчёты.

Представление чисел с помощью арабских цифр — самая распространённая позиционная система счисления, она называется «десятичной системой счисления». Десятичной системой она называется потому, что использует десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Заметьте: максимальная цифра (9) на единичку меньше количества цифр (10).

Для составления машинных кодов удобно использовать не десятичную, а двоичную систему счисления, содержащую только две цифры, 0 и 1. Обратите внимание, что в двоичной системе максимальная цифра 1.

Программисты для вычислений также пользуются ещё восьмеричной и шестнадцатеричной системами счисления.

Количество цифр, используемых в системе счисления, называется её «основанием». В десятичной системе основание равно десяти, в двоичной системе — двум, ну а в восьмеричной и шестнадцатеричной — соответственно, восьми и шестнадцати.

Перевод чисел из произвольной системы счисления в десятичную и обратно.

Перевод чисел из произвольной системы в десятичную. Для перевода числа из любой позиционной СС в десятичную необходимо использовать развернутую форму числа, заменяя, если это необходимо, буквенные обозначения соответствующими цифрами. Например:

11012=1*23+1*22+0*21+1*20=1310

Перевод чисел из десятичной СС в заданную.

1) Для преобразования целых чисел десятичной системы счисления в число любой системы счисления последовательно выполняют деление нацело на основание СС, пока не получат нуль. Числа, которые возникают как остаток от деления на основание СС, представляют собой последовательную запись разрядов числа в выбранной СС от младшего разряда к старшему. Поэтому для записи самого числа остатки от деления записывают в обратном порядке.

Например:

Читая остатки от деления снизу вверх, получим 111011011.

Проверка:

1*28+1*27+1*26+0*25+1*24+1*23+0*22+1*21+1*20= 1+2+8+16+64+128+256=47510.

5. Задание № 2

Написать консольное приложение, которое предоставляет меню для перевода двоичного числа в десятичное, шестнадцатеричного в десятичное, десятичного в двоичное и десятичного в шестнадцатеричное. При выборе номера меню осуществить конвертацию введенного числа и вывести результат.

Предполагаемый вид интерфейса программы представлен на рис. 1.

Рисунок 1 – Предполагаемый вид интерфейса программы

Замечания и рекомендации:

– пользователь должен выходить из программы, выбрав соответствующий пункт меню;

– если он выбрал один из вариантов преобразования, то после демонстрации результатов программа должна вновь вывести на экран главное меню и вновь предложить выбор действия;

– операции преобразования из одной системы счисления в другую должны быть реализованы с помощью отдельных функций;

– если требуется очистить экран то можно воспользоваться функцией system(“cls”);

– для преобразования данных из string в int можно воспользоваться функцией stoi(), для обратного – to_string();

– преобразования форматов выводимых данных с помощью спецификаторов формата, флагов вывода и манипуляторов решением задачи не считаются.

12