Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.doc
Скачиваний:
151
Добавлен:
17.02.2016
Размер:
592.38 Кб
Скачать

3. Некоторые сведения о системах счисления.

Все данные и программы, хранящиеся в памяти компьютера, имеют вид двоичного кода. Мы уже знаем, что для представления текстовой (символьной) информации используется алфавит из 256 символов. Один символ из такого алфавита несет 8 бит информации, а значит двоичный код каждого символа в компьютерном тексте занимает 1 байт памяти. Числовая информация в памяти компьютера также представляется в двоичном виде.

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

Существуют позиционные и непозиционные системы счисления.

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

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

700 + 50 + 7 + 0,7 = 7102 + 5101 + 7100 + 710-1 = 757,7.

Любая позиционная система счисления характеризуется своим основанием. Основание позиционной системы счисления — это количество различных знаков или символов, используемых для изображения цифр в данной системе. Вот несколько примеров позиционных систем и их алфавитов:

Основание

Название

Алфавит

2

Двоичная

0 1

3

Троичная

0 1 2

8

Восьмеричная

0 1 2 3 4 5 6 7

16

Шестнадцатеричная

0 1 2 3 4 5 6 7 8 9 A B C D E F

Если n – основание системы не большее десяти, то в алфавите используются n первых арабских цифр. Если основание превышает 10, то в качестве дополнительных цифр выступают буквы латинского алфавита по порядку.

Общепринятой в современном мире является десятичная позиционная система исчисления, которая из Индии через арабские страны пришла в Европу. Основанием системы является число десять. Практически на всем земном шаре пользуются числовым языком, алфавит которого состоит из десяти арабских цифр от 0 до 9.

За основание системы можно принять любое натуральное число — два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения

an-1 qn-1 + an-2 qn-2+ ... + a1 q1 + a0 q0 + a-1 q-1 + ... + a-m q-m,

где ai – цифры системы счисления; n и m – число целых и дробных разрядов, соответственно. Пусть число 102 записано в троичной системе счисления.

Тогда (102)3 =132+031+230. Выполнив действия, получим значение троичного числа в десятичной системе счисления. Т.е. (102)3 = (11)10.

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

(76)10 = 64 + 8 + 4 = 26 + 23 + 22 = (1001100)2.

Можно воспользоваться последовательным делением на 2 с выделением остатка. Например,переведем число 58 в троичную систему счисления. После знака равенства записывается целая часть частного, а в скобках указывается остаток.

58 : 3 = 19 (1)

19 : 3 = 6 (1)

6 : 3 = 2 (0)

2 : 3 = 0 (2) 

Окончательный результат такой: 58=20113.

(201,25)=27+26+23+20+2-2=(11001001,01)2Для перевода дроби в двоичную систему счисления преобразуют отдельно ее целую и дробную части. Причем дробная часть должна представляться суммой

a2-1 + b2-2 + c2-3 + ...

где a,b,c,... неизвестные коэффициенты, принимающие значения либо 0, либо 1, которые и надо найти. Применяют алгоритм умножения на 2. Например, для перевода 0,375 в двоичную систему счисления, имеем:

20,375 = 0,75 (целая часть равна 0)

20,75 = 1,5 (целая часть равна 1)

20,5 = 1,0 (целая часть равна 1)

Этот процесс продолжается до тех пор, пока дробная часть не окажется равной нулю. Тогда имеем (0,375)10= (0,011)2. Проверьте, что (0,625)10 = 0,1012

Заметим, что этот процесс может оказаться и бесконечным. Например, число 0,1 при переводе в двоичную систему счисления примет вид (0,1)10= (0,00011001100...)2. Переведем число 0,123 в пятеричную систему счисления.

0,123·5=0,615

0,615·5=3,075

0,075·5=0,375

0,375·5=1,875

0,875·5=4,375

0

3

0

1

4

Далее пойдет повторение двух последних цифр. Результат получился таким:

0,123=0,030(14)5.

В компьютерах используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами:

  • для ее реализации нужны технические устройства с двумя устойчивыми состояниями (есть ток — нет тока), а не с десятью, — как в десятичной;

  • представление информации посредством только двух состояний надежно и помехоустойчиво;

  • двоичная арифметика намного проще десятичной.

Недостаток двоичной системы — быстрый рост числа разрядов, необходимых для записи чисел.

Рассмотрим пример смешанной системы счисления - двоично-десятичной системы счисления.

В ней десятичное число записывается путем замены каждой цифры на 4-разрядный двоичный код. Таблица соответствия для двоично-десятичной системы следующая:

DEC

0

1

2

3

4

5

6

7

8

9

BIN

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

В этой таблице каждой десятичной цифре поставлено в соответствие равное ей четырехзначное двоичное число (нули слева – незначащие). Например, десятичное число 58236,37 в двоично-десятичной форме запишется так: 101 10001 0010 0011 0101,0011 01112-10 . Первый слева ноль у целого числа является незначащей цифрой, поэтому его можно не писать.

Для обратного преобразования из двоично-десятичной формы в десятичное число нужно разбить на четверки все знаки двоичного кода: от запятой влево – в целой части и вправо – в дробной части. Затем каждую четверку двоичных цифр заменить на соответствующую десятичную цифру. Например:

11 1000 0010 1001 0011,0101 1001 1000 2-10 → 3823,598

Отметим важное обстоятельство: между данными десятичным и двоично-десятичным числом нельзя поставить знак равенства. Двоично-десятичное представление – это всего лишь двоичный код для представления десятичного числа, но никак не равное ему значение в двоичной системе счисления. Выполнение арифметических вычислений над десятичными числами, представленными в двоично-десятичной форме, весьма затруднительны. Тем не менее, в истории ЭВМ известны такие примеры. В первой ЭВМ под названием ENIAC использовалась двоично-десятичная система.

Современные компьютеры производят вычисления в двоичной системе счисления. Однако для представления компьютерной информации нередко используются двоично-восьмеричная и двоично-шестнадцатеричная системы.

Двоично-восьмеричная система. В следующей таблице представлено соответствие между восьмеричными цифрами (OCT) и трехзначными двоичными (BIN) числами (двоичными триадами), равными по значению этим цифрам.

OCT

0

1

2

3

4

5

6

7

BIN

000

001

010

011

100

101

110

111

Записать восьмеричное число в двоично-восьмеричном виде – это значит заменить каждую восьмеричную цифру на соответствующую двоичную триаду. Например: 3517,28→11 101 001 111,010 2-8.

А теперь переведем данное восьмеричное число в двоичную систему счисления. Для этого сначала его переведем в десятичную систему, а потом из десятичной в двоичную систему счисления. Вот что получается:

3517,2 8 = 1871,25=11101001111,01 2

Но это тот же самый двоичный код, что записан выше в двоично-восьмеричной системе! Мы пришли к следующему результату: двоично-восьмеричное число равно значению данного восьмеричного числа в двоичной системе счисления.

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

Двоично-шестнадцатеричная система счисления. В следующей таблице представлено соответствие между шестнадцатеричными (HEX) цифрами и четырехзначными двоичными числами (двоичными тетрадами), равными по значению этим цифрам.

DEC

0

1

...

8

9

10

11

12

13

14

15

HEX

0

1

...

8

9

A

B

C

D

E

F

BIN

0000

0001

...

1000

1001

1010

1011

1100

1101

1110

1111

Записать шестнадцатеричное число в двоично-шестнадцатеричном виде – это значит заменить каждую шестнадцатеричную цифру на соответствующую двоичную тетраду. Например: С81F,1D16 → 1100 1000 0001 1111,0001 11012-16

Переведем данное шестнадцатеричное число сначала в десятичную систему счисления, а затем в двоичную систему. Получим:

С81F,1D16 = 51231,875 = 1100 1000 0001 1111,0001 11012

Получился тот же самый двоичный код, что записан выше в двоично-шестнадцатеричной системе! Рассмотренный пример привел к следующему результату: двоично-шестнадцатеричное число равно значению данного шестнадцатеричного числа в двоичной системе счисления.

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

Восьмеричную и шестнадцатеричную системы счисления используют для компактного представления содержимого памяти компьютера, а также ее адресации. Восьмеричное представление сжимает двоичный код в три раза, а шестнадцатеричное представление – в четыре раза.

Задача. Перевести число 1369,75 в двоичную, восьмеричную и шестнадцатеричную системы счисления.

Наиболее рациональный способ решения задачи следующий. Нужно перевести это число в одну из трех систем с основанием 2, 8 или 16, а затем, используя связь между ними через смешанное представление, выполнить перевод в две другие системы путем перекодировки по таблицам 2-8 и 2-16.

1) Переведем число в восьмеричную систему путем последовательного деления на 8 целой части и последовательного умножения на 8 дробной части числа. Получим:

1369,75=2531,68

2) Путем перекодировки по двоично-восьмеричной таблице переведем это число в двоичную систему счисления:

2531,68=10 101 011 001,1102

3) Разделив цифры двоичного числа на тетрады (влево и вправо от запятой), переведем двоичное число в шестнадцатеричную систему, используя двоично-шестнадцатеричную таблицу:

0101 0101 1001,11002=559,С16

Все арифметические действия в компьютере выполняются в двоичной системе счисления. Законы двоичной арифметики очень просты:

Сложение

0+0=0

1+0=1

0+1=1

1+1=10

Умножение

00=0

10=0

01=0

11=1

Перенос в старший разряд единицы возникает, если результат сложения цифр одноименных разрядов больше 1.

Например,

1

1

1

1

1

1

0

1

1

0

0

1

1

1

+

1

0

0

1

1

0

1

1

1

0

1

1

0

1

0

0

Цифрами сверху обозначены значения, переносимые при сложении в соседний слева разряд. Проверьте результаты действий: a) 11102 + 1012 = 100112 ;

б) 1012  112 = 11112.

Заметим, что хотя Вам не потребуется записывать числа в рассмотренных системах счисления, однако, в литературе используют такую форму представления, причём без специальных оговорок.