Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК_МашЗавЯП_А4.doc
Скачиваний:
157
Добавлен:
10.06.2015
Размер:
19.94 Mб
Скачать
  1. Представление данных в эвм

    1. Системы счисления и преобразования между ними

Различные системы счисления отличаются не только базовым набором чисел, но и основными концепциями, которые лежат в их основе. Взять, например, систему счисления, которая использовалась древними римлянами: она довольно трудна для восприятия, в ней очень сложно производить вычисления и невозможно представить 0. Данная система неудобна даже для человека, не говоря уж о том, чтобы научить компьютер «понимать» ее. Говорят, что римским коммерсантам не был нужун 0 и отрицательные числа, так как они манипулировали числом «штук».

  • Десятичные числа

Десятичная система, которую мы используем всю жизнь, относится к классу так называемых позиционныхсистем, в которых число А может быть представлено в виде:

A = An* Zn+ An-1*Zn-1 + … + A1*Z1+A0*Z0

Здесь:

  • An - цифры числа

  • Z - основание системы счисления

Например, десятичное число 1234 можно представить так:

1234 = 1*103+ 2*102 + 3*102+ 4*100.

«Вес» каждой цифры определяется позицией цифры в числе и равен степени основания, соответствующей ее позиции. Позиции нумеруются слева, начиная с 0.

  • Двоичные числа

При работе с различными системами счисления мы будем записывать само число в скобках, а за скобками — основание системы. Например, если написать просто число 1100, то не понятно, в какой системе оно записано — это может быть одна тысяча сто, а может быть 12, если число записано в двоичной системе. А если представить число в виде (1100)2, то сразу все становится на свои места: число записано в двоичной системе.

Двоичная система тоже позиционная, поэтому, например, число 1100 в двоичной системе мы можем представить так:

(1100)2 = 1*23+ 1*22+ 0*21+ 0*20= 4 + 8 =(12)10.

Обратите внимание, что для представления числа 12 в двоичной системе использованы только 4 разряда. Наибольшее число, которое можно записать 4 двоичными цифрами, равно 15, потому что

(1111)2= 1*23+ 1*22+1*21+ 1*20= 8 + 4 + 2 + 1 = (15)10.

В программах двоичные числа завершаются суффиксом b. В примере это 1100b.

Для кодирования двоичных чисел применяют несколько кодов.:

Прямой код: 0 в старшем разряде соответствует положительным числам, 1 – отрицательным. Остальные разряды представляют модуль числа. В таком коде удобно осуществлять операции умножения (модули чисел перемножаются, а знаковые разряды складываются по модулю два), но неудобно реализовывать сложение. Примеры:

Разряды

7

6

5

4

3

2

1

0

Число

Биты

0

1

1

0

0

0

1

1

01100011b

Число

+

64=26

32=25

0

0

0

2=21

1=20

+99 = 64 + 32 +2 + 1

Биты

1

1

1

0

0

0

1

1

11100011b

Число

-

64=26

32=25

0

0

0

2=21

1=20

-99 = -(64 + 32 +2 + 1)

Дополнительный код: 0 в старшем разряде соответствует положительным числам, 1 – отрицательным. Дополнительный код положительного числа, есть само число. Дополнительный код отрицательного числа образуется путем инверсии всех битов положительного числа (включая знаковый) и прибавления 1. В дополнительном коде удобно выполнять операции сложения – числа со знаком складываются точно так же, как беззнаковые. Обратное преобразование производится точно по тому же правилу. Дополнительное преимущество дополнительного кода: +0 и -0 имеют одинаковый код 000b. Примеры:

Разряды

7

6

5

4

3

2

1

0

Число

Биты

0

1

1

0

0

0

1

1

01100011b

Число

+

64=26

32=25

0

0

0

2=21

1=20

+99 = 64 + 32 +2 + 1

Биты

1

0

0

1

1

1

0

1

10011101b

Число

-

64=26

32=25

0

0

0

2=21

1=20

-99 = -(64 + 32 +2 + 1)

Обратный код: 0 в старшем разряде соответствует положительным числам, 1 – отрицательным. Обратный код положительного числа, есть само число. Совпадает с прямым кодом. Обратный код отрицательного числа образуется путем вычитания символа каждого разряда (включая знаковый) из числа, на 1 меньшего основания системы счисления. Обратное преобразование производится точно по тому же правилу. Практически не применяется.

Смещенный код: 1 в старшем разряде соответствует положительным числам, 0 – отрицательным. Представления чисел получаются путем прибавления к ним константы 2N–1, гдеN– число двоичных разрядов (не считая знакового). Применяется для кодирования вещественных чисел (с дробной частью) в формате с плавающей точкой.

  • 8-ричные чила

Двоичная система счисления, в которой работают все цифровые электронные устройства, неудобна для человека. Для удобства представления двоичного содержимого ячеек памяти или регистров процессора используется позиционая 8-ричная система счисления. Ее алфавит состоит из 8 арабских цифр от 0 до 7. Пример 8-ричного числа:

(247)8= 2*82+ 4*81+ 7*80= 128 + 32 + 7 = 167.

В программах 8-ричные числа завершаются суффиксом o. В примере это 247o.

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

  • Двоичное число, начиная с младших разрядов, разбивается на триады (тройки символов). Если длина числа не кратна трём, то оно дополняется старшими нулевыми разрядами.

  • Каждая триада записывается символами 8-ричного алфавита.

При обратном переходе каждый символ представляется 3-разрядным двоичном числом. Единая последовательность этих чисел и представляет собой искомое двоичное число.Знак 8-ричного числа отображается в старшем разряде: 0 соответствует положительному числу, 1 – отрицательному.

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

  • 16-ричные чила

Двоичная система счисления, в которой работают все цифровые электронные устройства, неудобна для человека. Для удобства представления двоичного содержимого ячеек памяти или регистров процессора используется позиционая 16-ричная система счисления. Ее алфавит состоит из 10 арабских цифр от 0 до 9 и шести латинских букв: A (вес 10), B (вес 11), C (вес 12), D (вес 13), (вес 14), F (вес 15). Пример 16-ричного числа:

(524D)16= 5*163+ 2*162+ 4*161+ 13*160= 20480 + 512 + 64 + 13 = 21069.

В программах 16-ричные числа завершаются суффиксом h. В примере это 524Dh.

То же самое число в двоичном представлении содержит в 4 раза больше символов – 0101 0010 0100 1101. !6-ричное представление более компактно.

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

  • Двоичное число, начиная с младших разрядов, разбивается на тетрады (четвёрки символов). Если длина числа не кратна четырём, то оно дополняется старшими нулевыми разрядами.

  • Каждая тетрада записывается символами 16-ричного алфавита.

При обратном переходе каждый символ представляется 4-разрядным двоичном числом. Единая последовательность этих чисел и представляет собой искомое двоичное число.Знак 16-ричного числа отображается в старшем разряде: 0 соответствует положительному числу, 1 – отрицательному.

В программах 16-ричные эквиваленты сопровождаются суффиксом h.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]