Введение.
Системой счисления называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.
Система называется позиционной, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.
Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления. Если количество таких цифр равно P, то система счисления называется P-ичной. Основание системы счисления совпадает с количеством цифр, используемых для записи чисел в этой системе счисления.
Запись произвольного числа x в P-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена
x = anPn + an-1Pn-1 + … + a1P1 + a0P0 + a-1P-1 + … + a-mP-m
Арифметические действия над числами в любой позиционной системе счисления производятся по тем же правилам, что и десятичной системе, так как все они основываются на правилах выполнения действий над соответствующими многочленами. При этом нужно только пользоваться теми таблицами сложения и умножения, которые соответствуют данному основанию P системы счисления.
Постановка задачи.
Программа должна считывать из файла вещественные числа с фиксированной точкой в десятиричной системе. Затем, следуя заданию, необходимо перевести числа в шестнадцатеричную систему счисления и вывести результат в файл. Далее осуществляется перевод в восьмеричную систему счисления и выполняются две операции: сложение и вычитание. Результаты этих действий перевести обратно в шестнадцатиричнуюсистему счисления,а затем в десятичную и вывести в файл.
Правила перевода чисел.
Правило перевода из шестнадцатеричной в восьмеричную систему счисления.
Оптимальный способ перевода числа из шестнадцатеричной в восьмеричную систему счисления будет следующим. Т.к. шестнадцатеричное число имеет основание системы счисления 16=24, а восьмеричное 8=23, то шестнадцатеричное число переводим в двоичное: каждую цифру заменяем на группу из 4-х двоичных цифр ( тетраду ) соответственно данной таблице:
С и с т е м а с ч и с л е н и я | С и с т е м а с ч и с л е н и я | |||
2 | 16 | 2 | 16 | |
0000 | 0 | 1000 | 8 | |
0001 | 1 | 1001 | 9 | |
0010 | 2 | 1010 | A | |
0011 | 3 | 1011 | B | |
0100 | 4 | 1100 | C | |
0101 | 5 | 1101 | D | |
0110 | 6 | 1110 | E | |
0111 | 7 | 1111 | F | |
Таблица №1 |
Затем получившееся двоичное число разбиваем на группы по 3 цифры (триады). Далее заменяем эти триады цифры соответствующими восьмеричными цифрами. При необходимости добавить нули слева от числа для дробной части, и справа для целой части числа.
С и с т е м а с ч и с л е н и я | С и с т е м а с ч и с л е н и я | |||
2 | 8 | 2 | 8 | |
000 | 0 | 100 | 4 | |
001 | 1 | 101 | 5 | |
010 | 2 | 110 | 6 | |
011 | 3 | 111 | 7 | |
Таблица №2 |
Правило перевода из восьмеричной в шестнадцатеричную систему счисления.
Данный перевод осуществляется аналогично описанному в п. 3.1. с тем отличием, что восьмеричное число переводится в двоичное: каждая восьмеричная цифра заменяется двоичной триадой согласно таблице №2.
Затем двоичное число разбивается на тетрады (при необходимости добавить нули справа и слева от числа) которые заменяются шестнадцатеричными цифрами согласно таблице №1
Правило перевода из десятичной в любую другую систему счисления.
Перевод числа из десятичной системы в другую осуществляется с помощью деления десятичного числа на основание системы счисления, в которую переводится число. Полученные остатки от деления необходимо записать в обратном порядке. Полученное из остатков от деления число и будет являтся передставленим данного числа в системы, на основание которой делили.
Укрупненная схема алгоритма.