Представление числовых значений

Метод хранения информации в виде закодированных символов неэффективен для работы с числовой информацией.

Например, как будет храниться число 17? В стандарте ASCII, используется 1 байт памя­ти для каждого символа. Таким образом, нам потребуется в общей сумме 16 битов. А, самое большое чис­ло, которое мы можем представить, используя 16 битов, это 99. Поэтому более эффектив­ным является хранение числового значения в двоичном представлении.

Двоичное представление (binary notation) — это запись числовых зна­чений, в которой используются только 0 и 1, а не 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, как в традиционной, десятичной, системе счисления.

Напомним, что в десятичной системе счисления каждой позиции в записи числа соответствует определенный разряд. В записи числа 281 цифра 1 занимает позицию единиц, 8 — позицию десятков, 2 — позицию сотен.

3 7 5

                    Запись числа

 

 

                                 Рис. 1.3. Разрядность записи чисел

При смещении по записи числа влево вес разряда увеличивается в десять раз. Значение, представленное записью, мож­но получить, умножив значение каждого числа на вес его разряда и затем сложив полученные произведения. Например, запись 281 имеет вид:

(2 х 100) + (8 х 10) + (1 х 1).

В двоичном представлении каждая позиция в записи числа также соответствует определенному разряду. При движении по записи числа влево вес разряда каждый раз увеличивается в два раза.

Более точно, вес разряда последнего числа справа равен единице (2°), вес разряда следующего числа равен двум (21), следу­ющего — четырем (22), следующего — восьми (23) и т. д.

Например, в двоичной записи 1101 самая крайняя справа 1 соответствует весу разряда, равному едини­це, следующий ноль — весу разряда, равному двум, 1 соответствует весу раз­ряда, равному четырем, а самая крайняя слева 1 — весу разряда, равному восьми.

Чтобы получить значение, представленное двоичной записью, выполняем те же действия, как в случае с десятичной системой счисления: умножаем значение каждой цифры на вес соответствующего разряда и складываем полученные про­изведения.


Вес разряда


1 0 1 1

                                Запись числа

Рис. 1.4 Вес разрядов

Например, значение, имеющее запись 100101, равно 37.

Важно, что в двоичном представлении используют­ся только 0 и 1, и получение значения числа сводится к суммированию тех разрядов, в которых в записи стоит единица.

1 1Г0о" 1 1 0 1 Вес разряда  
          1

х Один            = 1

       

0

х Два               = 0

     

1

х Четыре            = 4

   

1

х Восемь        = 8

 

1

х Шестнадцать = 16

1

х Тридцать два = 32

Двоичная запись

 

 

                                      Значение бита   Сумма      = 61

Рис. 1.5. Представление двоичных чисел

Еще один пример. Двоичная запись 1101 имеет значение 13, так как единицы соответствуют разрядам 1, 3 и 4.

Последовательность двоичных записей, соответствующих десятичным числам от 0 до 8, выглядит следующим образом: 0, 1, 10, 11, 100, 101, 110, 111, 1000.

Для получения двоичной записи больших положительных чисел можно использовать систематический подход, описываемый алгоритмом.

Шаг 1. Делим число на два и запишем остаток деления.

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

Шаг 3. Когда частное станет равно нулю, двоичная запись числа будет состоять из остатков деления, выписанных справа налево в том порядке, в каком они были получены.

Попробуем применить этот алгоритм к числу 13. Сначала делим тринадцать на два, получаем частное, равное шести, и единицу в остатке; так как частное не равно нулю, делим его на два в соответствии с шагом 2. В результате имеем новое частное, равное трем, и ноль в остатке. Это частное также не равно нулю, поэтому делим его на два, получая частное, равное единице, и два в остатке. Еще раз делим частное (единицу) на два, в этот раз частное равно нулю, а остаток едини­це. Так как мы получили в результате деления ноль, то переходим к третьему шагу и получаем двоичную запись исходного значения (тринадцать), которая имеет вид 1101.

 

 

 


Рис. 1.6. Преобразование числа 13 в двоичную форму записи

 

Теперь вспомним, что представление числа 17 в начале раздела (двумя байтами), и, что таким образом можно представить самое большое число 99. Становится видно, если мы будем использовать двоичное представление, мы сможем хранить целые числа в интервале от 0 до 65 535, что является значительным усовершенствованием.

Таким образом, числовую информацию принято хранить в виде двоичной записи, а не в виде закодированных символов. Речь идет о «в виде двоичной записи», потому что обычная двоичная система счисления описывает только основы нескольких способов хранения числовой информации, используемые в машинах.

Важно, что для хранения целых чисел принята система кодирования, которая называется представ­лением в дополнительном коде, которая дает возможность кодирования и положительных, и отрицательных чисел.

Для хранения чисел с дробной час­тью, таких как 3*/2 или 3/4, используется другая форма, называемая представле­нием чисел с плавающей точкой. Таким образом, отдельное значение (например, 15) может быть представлено различными последовательностями битов (как сим­вол, закодированный в стандарте ASCII; в представлении в дополнительном коде или в форме с плавающей точкой, как 150/2), и наоборот, отдельную последова­тельность битов можно интерпретировать по-разному.

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

1.




1.1.

1.2.

1.3.

1.4.

1.5.

1.6.

1.6.1.

1.6.2.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: