
- •«Разработка программ преобразования форматов двоичных данных и сортировок в машинных кодах микро-эвм см-1800 с помощью эмулятора на пк»
- •Задание
- •Индивидуальное задание № 17
- •Аналитическая часть.
- •Двоичная система счисления.
- •Восьмеричная система счисления.
- •Шестнадцатеричная система счисления.
- •Правила переводов десятичных чисел в них и обратно.
- •Преобразование дробных десятичных чисел в двоичные
- •Форматы хранения чисел с плавающей точкой.
- •Пример: Вещественный тип
- •Практическая разработка.
- •Описание алгоритма решения задач.
- •Блок схема.
- •2.3 Распределение памяти и листинг программы.
- •2.4 Результаты тестирования программы.
- •Выводы.
- •Список используемой литературы.
Преобразование дробных десятичных чисел в двоичные
Перевод дробного числа из десятичной системы счисления в двоичную осуществляется по следующему алгоритму:
Вначале переводится целая часть десятичной дроби в двоичную систему счисления;
Затем дробная часть десятичной дроби умножается на основание двоичной системы счисления;
В полученном произведении выделяется целая часть, которая принимается в качестве значения первого после запятой разряда числа в двоичной системе счисления;
Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются с предыдущего шага.
Пример: Требуется перевести дробное десятичное число 206,116 в дробное двоичное число.
Перевод целой части дает 20610=110011102 по ранее описанным алгоритмам; дробную часть умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа: .116 • 2 = 0.232 .232 • 2 = 0.464 .464 • 2 = 0.928 .928 • 2 = 1.856 .856 • 2 = 1.712 .712 • 2 = 1.424 .424 • 2 = 0.848 .848 • 2 = 1.696 .696 • 2 = 1.392 .392 • 2 = 0.784 и т. д. Получим: 206,11610=11001110,00011101102
Преобразование восьмеричных чисел в десятичные.
Алгоритм перевода чисел из восьмеричной в десятичную систему счисления аналогичен уже рассматривавшему мною в разделе: Преобразование двоичных чисел в десятичные.
Для перевода восьмеричного числа в двоичное необходимо заменить каждую цифру восьмеричного числа на триплет1 двоичных цифр.
Пример: 25418 = 010 101 100 001 = 0101011000012
Существует таблица перевода восьмеричных чисел в двоичные
08 |
= |
0002 |
18 |
= |
0012 |
28 |
= |
0102 |
38 |
= |
0112 |
48 |
= |
1002 |
58 |
= |
1012 |
68 |
= |
1102 |
78 |
= |
1112 |
Преобразование шестнадцатеричных чисел в десятичные.
Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Например, требуется перевести шестнадцатеричное число 5A3 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:
5A316 = 3·160+10·161+5·16²= 3·1+10·16+5·256= 3+160+1280= 144310
Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой.
Например:
0101101000112 = 0101 1010 0011 = 5A316
Таблица перевода чисел
016=010=08 |
0 |
0 |
0 |
0 |
116=110=18 |
0 |
0 |
0 |
1 |
216=210=28 |
0 |
0 |
1 |
0 |
316=310=38 |
0 |
0 |
1 |
1 |
416=410=48 |
0 |
1 |
0 |
0 |
516=510=58 |
0 |
1 |
0 |
1 |
616=610=68 |
0 |
1 |
1 |
0 |
716=710=78 |
0 |
1 |
1 |
1 |
816=810=108 |
1 |
0 |
0 |
0 |
916=910=118 |
1 |
0 |
0 |
1 |
A16=1010=128 |
1 |
0 |
1 |
0 |
B16=1110=138 |
1 |
0 |
1 |
1 |
C16=1210=148 |
1 |
1 |
0 |
0 |
D16=1310=158 |
1 |
1 |
0 |
1 |
E16=1410=168 |
1 |
1 |
1 |
0 |
F16=1510=178 |
1 |
1 |
1 |
1 |