Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Компьютер является цифровым устройством, а значит, любая информация представляется в виде чисел. Для записи чисел люди используют различные системы счисления.
Под системой счисления (СС) понимается способ представления любого числа с помощью алфавита символов, называемых цифрами.
Мы используем в обычной жизни, десятичную систему счисления, когда число записывается с помощью десяти цифр (0,1,…9). В компьютере для записи чисел используется двоичная СС, т.е. любое число записывается в виде сочетания двух цифр – 0 и 1. Двоичные числа проще организовать технически: 0 - нет сигнала, 1 –есть сигнал.
И десятичная СС, и двоичная СС относятся к позиционным СС, т.е. значение цифры зависит от ее расположения в записи числа. Например, два числа 456 и 654 состоят из одних и тех же символов, но обозначают разное количество, т.к. они занимают разные позиции. Любая позиционная СС характеризуется основанием. Основание СС показывает, сколько различных символов используется в данной системе счисления. Для выполнения различных арифметических операций в ЭВМ используются двоичная, восьмеричная и шестнадцатеричная системы счисления. Шестнадцатеричная и восьмеричная СС используются при составлении программ на языке машинных кодов.
В общем случае все позиционные СС можно представить в виде полинома:
(1)
Где p – основание системы счисления;
- последовательность цифр, соответствующих n, n-1, … -m разрядам;
- весовые коэффициенты этих разрядов.
Для десятичной СС p = 10, весовые коэффициенты разрядов - 10 10 10 … 10 10 …
Пример: 456,7810 = 4∙10² + 5∙10¹ + 6∙10º +7∙10-¹ + 8∙10-²
Для двоичной СС p = 2 (цифры 0 и 1);
восьмеричной CC- p = 8 (цифры 0 – 7);
шестнадцатеричной CC – p = 16 (помимо десяти цифр, используются шесть букв латинского алфавита: A, B, C, D, E, F.)
Соответствие между системами счислений задается таблицей:
Десятичное число | Двоичное число | Восьмеричное число | Шестнадцатеричное число |
A | |||
B | |||
C | |||
D | |||
E | |||
F |
Задача перевода чисел из одной системы счисления в другую часто встречается при программировании и особенно часто при программировании на языке Ассемблера. Рассмотрим правила переводов чисел:
Перевод чисел из десятичной СС в любую другую систему счисления осуществляется отдельно для целой и дробной части числа:
- целая часть числа последовательно делится на основание системы счисления, в которую осуществляется перевод до тех пор, кока последнее частное не станет меньше основания СС. Полученные от деления остатки - это символы новой СС. Запись нового числа осуществляется с последней цифры остатка.
- дробная часть последовательно умножается на основание СС, в которую осуществляется перевод. Полученные целые части в последующем умножении не участвуют и являются разрядами дробной части нового числа. Запись дробной части осуществляется в порядке получения.
Пример: переведем число 134, 75 10 в двоичную СС.
Целая часть: Дробная часть:
134 /2_____ 0,75
134 67 / 2 * 2
0 66 33 / 2 1, 5
1 32 / 16/ 2 * 2
1 16 / 8 / 2 1,0
0 8 4 / 2
0 4 2/ 2
02 1
0
Результат перевода: 134,7510 = 10000110,112
Для перевода чисел из восьмеричной (шестнадцатеричной) системы счисления в двоичную необходимо каждую цифру восьмеричного (шестнадцатеричного) числа представить трехразрядным (четырехразрядным) кодом с помощью таблицы.
Пример:
437, 528= 100 011 111, 101 0102
8FA2, 5Е16 = 1000 1111 1010 0010, 0101 11102
При обратном переводе числа из двоичной системы счисления в восьмеричную или шестнадцатеричную число от запятой влево и вправо разбивается на триады (или по четыре разряда, в случае шестнадцатеричной СС). Если крайние группы получились неполными, их добавляют нулями. Затем каждая полученная группа цифр представляется цифрой той СС, в которую осуществляется перевод.
Пример:
101 011 001, 100 1012 = 531, 458
1010 0111 1000, 1100 00012= А78,С116
Перевод чисел из системы счисления с любым основание в десятичную СС осуществляется по формуле (1).
Дата публикования: 2014-10-20; Прочитано: 619 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!