- •А.Б. Лачихина Разработка программы перевода чисел в различные системы счисления
- •Введение …………………………………………………………………4
- •Введение
- •Содержание работы: разработать алгоритм перевода чисел в различные системы счисления в соответствии с вариантом; написать программу, реализующую разработанный алгоритм, на языке программирования с#.
- •Теоретические сведения
- •2 Практическая часть
- •Контрольные вопросы Литература
Теоретические сведения
Перевод чисел в различные системы счисления
Для перевода числа из десятичной системы счисления в систему счисления с другим основанием поступают следующим образом:
а) Для перевода целой части числа его делят нацело на основание системы, фиксируя остаток. Если неполное частное не равно нулю продолжают делить его нацело. Если равно нулю остатки записываются в обратном порядке.
б) Для перевода дробной части числа ее умножают на основание системы счисления, фиксируя при этом целые части полученных произведений. Целые части в дальнейшем умножении не участвуют. Умножение производиться до получения 0 в дробной части произведения или до заданной точности вычисления.
в) Ответ записывают в виде сложения переведенной целой и переведенной дробной части числа.
Перевод из десятичной системы счисления в двоичную систему счисления
Пример:
Перевести число 75,375 в двоичную систему счисления.
а) переведем в двоичную систему целую часть - 75
75 : 2 = 37 ( 1 )
37 : 2 = 18 ( 1 )
18 : 2 = 9 ( 0 )
9 : 2 = 4 ( 1 )
4 : 2 = 2 ( 0 )
2 : 2 = 1 ( 0 )
1 : 2 = 0 ( 1 )
Закончив деление, запишем остатки в обратном порядке, и получим искомый результат:
75=10010112
б) переведем в двоичную систему дробную часть - 0,375
0,375
2
0,750
2
1,500
2
1,000
Выделенные числа запишем в естественном порядке и получим дробное число в двоичной системе счисления:
0,375 = 0,0112
в) получив целую и дробную части числа в двоичном виде (75=10010112 и 0,375 = 0,0112 ) можем сделать вывод:
75,375=75+0,375 = 10010112+0,0112=1001011,0112, значит 75,375=1001011,0112
Перевод из двоичной системы счисления в десятичную систему счисления.
Для перевода двоичного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания двоичной системы счисления на соответствующие цифры в разрядах двоичного числа.
Например, требуется перевести двоичное число 10110110 в десятичное. В этом числе 8 цифр и 8 разрядов ( разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с уже известным нам правилом представим его в виде суммы степеней с основанием 2:
101101102 = (1·27)+(0·26)+(1·25)+(1·24)+(0·23)+(1·22)+(1·21)+(0·20) = 128+32+16+4+2 = 18210
Перевод чисел из десятичной системы счисления в шестнадцатеричную систему счисления.
Пример:
Представить десятичное число 157,23 в шестнадцатеричной системе счисления. Целая часть числа равна 157, дробная - 0,23.
а) переведем в двоичную систему целую часть - 157
157 : 16 = 9 (13 или D)
9 : 16 = 0 ( 9 )
Закончив деление, запишем остатки в обратном порядке, и получим искомый результат:
157=9D 16
а) переведем в двоичную систему дробную часть - 0,23.
Результат умножения 0,23 на 16 равен 3,68. Целая часть этого числа равна 3, значит первый коэффициент дробной части равен 3. Дробная часть равна 0,68. Снова умножим ее на основание системы: 0,68*16=10,88. Целая часть равна 10 или в шестнадцатеричной системе А. Дробная часть равна 0,88, она опять умножается на 16 и так далее.
Выпишем весь процесс:
0,23 * 16 = 3,68 ( 3 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
0,08 * 16 = 1,28 ( 1 )
0,28 * 16 = 4,48 ( 4 )
0,48 * 16 = 7,68 ( 7 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
0,08 * 16 = 1,28 ( 1 )
0,28 * 16 = 4,48 ( 4 )
0,48 * 16 = 7,68 ( 7 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
Замечаем, что последовательность чисел 0,68; 0,88; 0,08; 0,28; 0,48 повторилась уже 2 раза и начинается в третий раз. Получается бесконечная шестнадцатеричная дробь в которой период (бесконечно повторяемая последовательность цифр) заключен в скобки:
157,23=9D,3(АЕ147)16
Перевод чисел из двоичной системы счисления в восьмеричную систему счисления.
Для перевода из двоичной системы счисления в восьмеричную необходимо разбить данное двоичное число вправо и влево от запятой на триада ( три цифры ) и представить каждую триаду соответствующим восьмеричным кодом. При невозможности разбиения на триады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру восьмеричного числа представляют соответствующей триадой двоичного кода.
Пример: Переведем число 1001011,0112 в восьмеричную систему счисления. Разобьем данное число на триады, приписав слева недостающие нули:
001 001 011 , 011
1 1 3 , 3
и заменим каждую триаду соответствующим восьмеричным кодом (см. таблицу). Можем сделать вывод:
1001011,0112 = 113,38
Перевод чисел из восьмеричной системы счисления в двоичную систему счисления.
Пример:
Переведем число 347,258 в двоичную систему счисления. Каждую цифру восьмеричного числа заменим соответствующей триадой (см. таблицу).
3 4 7 , 2 5
011 100 111 , 010 101
Запишем ответ, удалив нули слева в записи числа:
347,258 = 11100111,0101012
Шестнадцатеричная система счисления
Восьмеричная система компактнее двоичной и с более простым переводом чисел, однако, современные требования к ЭВМ заставили создавать шестнадцатеричную систему счисления.
24 = 16 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Правило перевода из двоичной системы счисления в шестнадцатеричную: разбить двоичное число вправо и влево от запятой на тетрады ( по 4 цифры ) и представить каждую тетраду соответствующим шестнадцатеричным кодом. При невозможности разбиения на тетрады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру шестнадцатеричного числа представляют тетрадой двоичного кода.
Пример: перевод чисел из двоичной системы счисления в шестнадцатеричную систему счисления.
Переведем число 1001011,0112 в шестнадцатеричную систему счисления. Разобьем данное число на тетрады, приписав слева в целой части, и справа в дробной части недостающие нули:
0100 1011, 0110
4 В , 6
и заменим каждую тетраду соответствующим шестнадцатеричным кодом (см. таблицу). Можем сделать вывод:
1001011,0112 = 4В,616
Пример: перевод чисел из шестнадцатеричной системы счисления в двоичную систему счисления.
Переведем число А4F,C516 в двоичную систему счисления. Каждую цифру шестнадцатеричного числа заменим соответствующей тетрадой (см. таблицу).
A 4 F , C 5
1010 0100 1111 , 1100 0101
Запишем ответ, удалив нули слева в записи числа:
A4F,C516 = 101001001111,110001012