Автор работы: Пользователь скрыл имя, 04 Сентября 2014 в 13:43, реферат
Все компьютеры используют для хранения информации двоичную систему. Это значит, что каждый элемент хранимой информации может иметь только два состояния. Эти состояния обозначаются как «включен» и «выключен», «истина» и «ложь», или «1» и «0». Как правило, компьютер использует эти значения в виде уровней напряжения.
Из-за двоичного представления данных компьютеры используют в своих вычислениях арифметику с двоичным основанием. Используя простейшие числа 0 и 1, можно выполнять очень сложные вычисления.
Все компьютеры используют для хранения информации двоичную систему. Это значит, что каждый элемент хранимой информации может иметь только два состояния. Эти состояния обозначаются как «включен» и «выключен», «истина» и «ложь», или «1» и «0». Как правило, компьютер использует эти значения в виде уровней напряжения.
Из-за двоичного представления данных компьютеры используют в своих вычислениях арифметику с двоичным основанием. Используя простейшие числа 0 и 1, можно выполнять очень сложные вычисления.
Арифметика с основанием 2 пользуется только двумя цифрами: 0 и 1.
Для начала определим общие принципы систем счисления на примере привычной нам десятичной арифметики. Мы обычно применяем систему исчисления по основанию 10. В десятичной арифметике употребляется десять различных цифр - от 0 до 9. (Двоичную арифметику можно представить себе как систему для людей, имеющих только два пальца.) Ограничение лишь десятью цифрами в десятичной арифметике не мешает нам представлять более крупные числа. Мы пользуемся многозначными числами, в каждой позиции которых стоят разные степени 10. Самая правая цифра любого числа обозначает число единиц, соседняя слева - количество десятков, следующая - число сотен и т.д. Прогрессия справа налево выстраивается такая:
100, 101, 102 и т.д.
Число 2368 в действительности представляет 2 тысячи, 3 сотни, 6 десятков и 8 единиц. Покажем, говоря математическим языком, разложение числа 2368.
2368 = 2*103 + 3*102 + 6*101 + 8*100
= 2000 + 300 + 60 + 8
Таким образом, мы видим общее правило определения веса разряда многоразрядного числа:
Если пронумеровать разряды целого числа справа налево, начиная от 0 для разряда единиц, то вес любого разряда получается возведением основания системы счисления в степень, значение которой равно номеру разряда.
Так, вес самого младшего разряда целых чисел равен 1, поскольку номер разряда равен 0 (любое число, возведенное в нулевую степень, дает в результате единицу). Вес следующего слева разряда равен 10 в степени 1, т.е. равен десяти, и т.д.
Арифметика с основанием 2 или двоичная система аналогична десятичной, за исключением того, что разряды числа здесь соответствуют степеням 2 а не 10. Числа больше 1 представляются многозначными числами, так же как в десятичной арифметике многозначное представление получают числа больше 9. Каждая цифра (разряд) в двоичной системе называется бит (от Binary digit). Двоичным числом состоящим из n бит можно изобразить число величиной 2n-1.
Кроме бита введем понятие байта – байт (англ. byte) — единица измерения количества информации, байт равен восьми битам (может принимать 256 (28) различных значений).
Сложение в двоичной системе выглядит так:
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10
В цифровой электронике одному двоичному разряду в двоичной системе счисления соответствует один двоичный логический элемент с двумя состояниями (открыт, закрыт).
Чтобы было сразу понятно, что число записано в двоичном представлении, мы будем пользоваться суффиксом «b» (т.е. буква b будет записана после всех цифр). Этим они будут отличаться от десятичных, не имеющих суффикса. Например, 2368 - это десятичное число, а 1011b - двоичное.
К неудобствам двоичной системы счисления относится то, что запись числа в двоичной системе громоздка (требует большего числа разрядов, чем привычная для человека десятичная). По этой и ряду других причин, кроме двоичной применяется шестнадцатеричная система счисления. Преобразования из двоичной в шестнадцатеричную систему и обратно выполняются просто и удобно.
Двоичная арифметика хороша для компьютера, поскольку он имеет дело только с единицами и нулями. Но человеческое восприятие требует более компактного представления. Мы будем пользоваться шестнадцатеричным представлением данных для собственного удобства.
Шестнадцатеричное представление чисел – это система исчисления по основанию 16. Каждая цифра в числе может иметь значение от 0 до 15. Каждый разряд в числе является степенью 16. Шестнадцатеричное представление – удобный метод записи двоичной информации. Каждая шестнадцатеричная цифра соответствует четырем битам. Для преобразования двоичного числа в шестнадцатеричное представление разбейте его на группы по 4 бита и прочитайте каждую группу как шестнадцатеричную цифру. Это дает уплотнение записи один к четырем – очень удобно. Такая группа из четырех разрядов называется тетрадой. Чтобы отличать число в шестнадцатеричном представлении будем дописывать суффикс «h».
Небольшая трудность здесь связанна с тем, что у нас имеются цифры только от 0 до 9. Числа от 10 до 15 мы будем представлять первыми шестью буквами латинского алфавита: от A до F.
Таблица 1. Системы счисления
Десятичная (Dec) |
Двоичная (Bin) |
Шестнадцатеричная (Hex) |
0 |
0 |
0 |
1 |
1 |
1 |
2 |
01 |
2 |
3 |
11 |
3 |
4 |
100 |
4 |
5 |
101 |
5 |
6 |
110 |
6 |
7 |
111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
A |
11 |
1011 |
B |
12 |
1100 |
C |
13 |
1101 |
D |
14 |
1110 |
E |
15 |
1111 |
F |
16 |
10000 |
10 |
Поскольку в практической деятельности люди привыкли оперировать десятичной системой счисления, а в ЭВМ числа представляются в двоичной, необходимо научиться преобразовывать числа из одной системы счисления в другую.
Перевод в десятичную систему числа x, записанного в q-ичной cистеме счисления (q = 2 или 16) сводится к вычислению значения многочлена
x = an*qn + an-1*qn-1 + ... + a0*q0
средствами десятичной арифметики. Для выполнения преобразования полезно иметь перед глазами таблицу со степенями двойки (разрядов двоичной системы счисления).
n |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
2n |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
Также приведем четыре младших разряда шестнадцатеричной системы
n |
0 |
1 |
2 |
3 |
16n |
1 |
16 |
256 |
4096 |
А теперь приведем примеры преобразования:
Примеры преобразования из двоичной системы в десятичную.
5 4 3 2 1 0
110011b=1*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20=51
9 8 7 6 5 4 3 2 1 0
1111101000b = 1*29 + 1*28 +·1*27 + ·1*26 + 1*25 + 0*24 + 1*23 +0*22 + 0*21 +1*20 = 1000
Пример преобразования из шестнадцатеричной системы в десятичную.
3 2 1 0
2C6Eh= 2*163 + C*162 + 6*162·+ E*162
=2·4096+12·256+6·16+14·1=11374
Для перевода целого десятичного числа N в систему счисления с основанием q необходимо N разделить с остатком (нацело) на q, записанное в той же десятичной системе. Затем неполное частное, полученное от такого деления, нужно снова разделить с остатком на q, и т.д., пока последнее полученное неполное частное не станет равным нулю. Представлением числа N в новой системе счисления будет последовательность остатков деления, изображенных одной q-ичной цифрой и записанных в порядке, обратном порядку их получения.
Теперь покажем как выполняется преобразование на примере. Переведем число 75 из десятичной системы в двоичную и шестнадцатеричную, сначала в двоичную:
75:2 = 37, остаток 1 это разряд весом 1
37:2 = 18, остаток 1 это разряд весом 2
18:2 = 9, остаток 0 это разряд весом 4
9:2 = 4, остаток 1 это разряд весом 8
4:2 = 2, остаток 0 это разряд весом 16
2:2 = 1, остаток 0 это разряд весом 32
1:2 = 0, остаток 1 это разряд весом 64 (в нашем случае старший разряд)
Деление заканчивается в тот момент, когда очередной результат деления даст ноль. Остатки, от деления, выписанные в соответствии с весами разрядов, дадут искомое число. Получаем:
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
1 |
0 |
0 |
1 |
0 |
1 |
1 |
b |
Теперь сделаем преобразование этого же числа в шестнадцатеричное представление:
75:16 = 4, остаток 11 это разряд весом 1 (11 это Bh)
4:16 = 0, остаток 4 это разряд весом 16
Остатки представленные в шестнадцатеричном виде с учетом веса разряда и дают искомое шестнадцатеричное число в шестнадцатеричном представлении – 4Bh.
Как видно, такое преобразование намного более компактно.
Теперь покажем как осуществить преобразование шестнадцатеричных чисел в двоичную систему и обратно.
Чтобы перевести число из двоичной системы в шестнадцатеричную, его нужно разбить на тетрады и каждую такую группу заменить соответствующей шестнадцатеричной цифрой. Покажем это преобразование на примере числа 1000. (Как мы уже показали в двоичном виде это число запишется как 11 1110 1000b, для наглядности тетрады разделены пробелами). Разбиение начинаем с младших разрядов (справа)
0011 |
1110 |
1000 |
b |
3 |
E |
8 |
h |
Обратный перевод шестнадцатеричных чисел в двоичную систему также очень прост: достаточно каждую цифру заменить эквивалентной ей двоичной тетрадой (четверкой цифр). Преобразование будет выглядеть так:
h | |||
0011 |
1110 |
1000 |
b |
На практике при преобразовании десятичного числа в двоичную форму бывает удобно сначала преобразовать это число в шестнадцатеричную систему, а затем сделать преобразование из шестнадцатеричной системы в двоичную.
Для представления как положительных так и отрицательных чисел используется так называемый дополнительный код – наиболее распространенный способ представления отрицательных целых чисел в компьютерах. Основным достоинством дополнительного кода является то, что в нем единообразно реализуются операции сложения чисел разных знаков (алгебраическое сложение), а операцию вычитания можно свести к операции сложения заменой знака вычитаемого на обратный. Дополнительный код отрицательного числа получается инвертированием двоичного числа и прибавлением к нему единицы (поэтому он и называется дополнительным).
Чтобы увидеть, как получается отрицательное число в дополнительном коде, вычтем из нуля единицу. Вычитание будем производить используя восьмиразрядную решетку:
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
b |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
b |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
b |
Мы получили число -1 в двоичном дополнительном коде. Чтобы убедится, что это в самом деле -1, сложим это число с 1:
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
b |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
b |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
b |
Информация о работе Арифметические основы вычислительных машин