Системы счисления 6

Введение.



Системой счисления называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.

Система называется позиционной, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.

Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления. Если количество таких цифр равно 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

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

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























































Укрупненная схема алгоритма.





Начало

Перевод в 8-ую с.с.

Чтение чисел из файла

Запись 16-ых чисел в файл

Перевод в 16-ую с.с.

Запись 8-ых чисел в файл



Перевод 8-числа из строкового типа  в массив цифр 



Операция сложения



Перевод суммы и разности в строковый формат



Операция вычитания



Запись 8-ного результата в файл



Запись 10-ного результата в файл



Запись 16-ного результата в файл



Перевод суммы и разности в 16 с.с.



Перевод суммы и разности в 10 с.с



Конец