В
ведение.
Системой счисления
называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами
), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.
Система называется позиционной
, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.
Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления
. Если количество таких цифр равно P
, то система счисления называется P
-ичной. Основание системы счисления совпадает с количеством цифр, используемых для записи чисел в этой системе счисления.
Запись произвольного числа x
в P
-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена
x = an
Pn
+ an
-1
Pn
-1
+ … + a
1
P
1
+ a
0
P
0
+ a
-1
P
-1
+ …
+ a-m
P-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
Правило перевода из десятичной в любую другую систему счисления.
Перевод числа из десятичной системы в другую осуществляется с помощью деления десятичного числа на основание системы счисления, в которую переводится число. Полученные остатки от деления необходимо записать в обратном порядке. Полученное из остатков от деления число и будет являтся передставленим данного числа в системы, на основание которой делили.
Укрупненная схема алгоритма.
|