воскресенье, 28 сентября 2014 г.

Представление целых чисел в компьютере

Вся информация, обрабатываемая компьютерами, хранится в них в двоичном виде.
Каким же образом осуществляется это хранение?
Информация, вводимая в компьютер и возникающая в ходе его работы, хранится в его памяти. Память компьютера можно представить как длинную страницу, состоящую из отдельных строк.

 Каждая такая строка называется ячейкой памяти.
Ячейка – это часть памяти компьютера, вмещающая в себя информацию, доступную для обработки отдельной командой процессора.
Содержимое ячейки памяти называется машинным словом.
Ячейка памяти состоит из некоторого числа однородных элементов. Каждый элемент способен находиться в одном из двух состояний и служит для изображения одного из разрядов числа. Именно поэтому каждый элемент ячейки называют разрядом.

Нумерацию разрядов в ячейке принято вести справа налево, самый правый разряд имеет порядковый номер 0. Это младший разряд ячейки памяти, старший разряд имеет порядковый номер (n-1) в n-разрядной ячейке памяти.
Содержимым любого разряда может быть либо 0, либо 1.
Использование двоичной системы счисления в качестве внутренней системы представления информации вызвано конструктивными особенностями элементов вычислительных машин.
Основная причина – простота и надежность двухпозиционных элементов в плане их технической реализации. Наиболее надежным и дешевым является устройство, каждый разряд которого может принимать два состояния: намагничено — не намагничено, высокое напряжение — низкое напряжение и т. д.

Бит — минимальная единица измерения информации.
Каждый бит может принимать значение 0 или 1.
Битом также называют разряд ячейки памяти ЭВМ.
Стандартный размер наименьшей ячейки памяти равен восьми битам, то есть восьми двоичным разрядам. Совокупность из 8 битов является основной единицей представления данных – байт.
Байт (от английского byte – слог) – часть машинного слова, состоящая из 8 бит, обрабатываемая в ЭВМ как одно целое. На экране – ячейка памяти, состоящая из 8 разрядов – это байт. Младший разряд имеет порядковый номер 0, старший разряд – порядковый номер 7.
В байтовом алфавите байт является минимальной единицей информации, обрабатываемой в ЭВМ. Для записи чисел также используют 32-разрядный формат (машинное слово), 16-разрядный формат (полуслово) и 64-разрядный формат (двойное слово). Обратите внимание на нумерацию разрядов в ячейках памяти для представленных форматов данных.
Для измерения объема хранимой информации используются более крупные единицы объема памяти:
1 Килобайт (Кбайт) = 1024 байт = 210 байт;
1 Мегабайт (Мбайт) = 1024 Кбайт = 220 байт;
1 Гигабайт (Гбайт) = 1024 Мбайт = 230 байт;
1 Терабайт (Тбайт) = 1024 Гбайт = 240 байт;
1 Петабайт (Пбайт) = 1024 Тбайт = 250 байт.
Число 1024 как множитель при переходе к более высшей единице измерения информации имеет своим происхождением двоичную систему счисления (1024 — это десятая степень двойки).

Компьютерное представление целых чисел.
Целые числа – это простейшие числовые типы данных, с которыми оперирует компьютер. Для представления целых чисел используются специально для них предназначенные типы данных.
Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде.
Различие в представлении целых чисел со знаком и без знака вызвано тем, что в ячейках одного и того же размера в беззнаковом типе можно представить больше различных положительных чисел, чем в знаковом.
Например, в байте (8 разрядов) можно представить беззнаковые числа от 0 до 255.
Максимальное число, записанное в восьми разрядах ячейки соответствует восьми единицам и равно:
111111112 = 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20 = 255.
Таким образом, для беззнаковых типов нижняя граница диапазона значений всегда равна 0, а верхнюю границу диапазона допустимых значений можно подсчитать, зная количество разрядов, занимаемых элементами данного типа.
Верхняя граница диапазона допустимых значений для беззнаковых типов рассчитывается по формуле 2k – 1, где k – количество разрядов в ячейке
Знаковые положительные числа в байте можно представить только от 0 до 127.
Старший (левый) разряд отводится под знак числа, остальные
7 разрядов под само число. Максимальное число в знаковом представлении соответствует семи единицам и равно:
11111112 = 1*26 + 1*25 + 1*24 + 1*23 + 1*2 + 1*21 + 1*20 = 127.
Поэтому, если известно, что некоторая числовая величина является неотрицательной, то лучше рассматривать ее как беззнаковую.
Диапазон допустимых значений для знаковых типов рассчитывается по формулам:
Нижняя граница допустимых значений: 2k-1;
Верхняя граница допустимых значений: 2k-1 – 1, где k – количество разрядов в ячейке.
Рассмотрим алгоритм представления в компьютере целых положительных чисел.

Пример: Требуется получить внутреннее 8-разрядное представление десятичного числа 54.
1. Для этого целое положительное число переводится в двоичную систему счислени
2. Полученное двоичное число записывается в 8 разрядах так, что в младшем разряде ячейки находится младший разряд числа.
3. Двоичное число дополняется, если это необходимо, слева нулями до соответствующего числа разрядов (8-ми, 16-ти, 32-х и более);
Мы рассмотрели компьютерное представление целых положительных чисел.
Следующий вопрос: как представляются в компьютере целые отрицательные числа.
В ЭВМ в целях упрощения выполнения арифметических операций применяют специальные коды для представления чисел. Использование кодов позволяет свести операцию вычитания чисел к операции поразрядного сложения кодов этих чисел.
Применяются прямой, обратный и дополнительный коды чисел.
К кодам выдвигаются следующие требования:
1) Разряды числа в коде жестко связаны с определенной разрядной сеткой.
2) Для записи кода знака в разрядной сетке отводится фиксированный, строго определенный разряд.
Например, если за основу представления кода взят один байт, то для представления числа будет отведено 7 разрядов, а для записи кода знака один разряд. Знаковым разрядом является старший разряд в разрядной сетке.
Прямой код
Прямой код двоичного числа совпадает по изображению с записью самого числа. Значение знакового разряда для положительных чисел равно 0, а для отрицательных чисел 1.
Пример. В случае, когда для записи кода выделен один байт, для числа +1101 прямой код 0,0001101, для числа -1101 прямой код 1,0001101.
Обратный код
Обратный код для положительного числа совпадает с прямым кодом.
Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Пример.
Для числа +1101 прямой код 0,0001101; обратный код 0,0001101.
Для числа -1101 прямой код 1,0001101; обратный код 1,1110010.
Дополнительный код
Дополнительный код положительного числа совпадает с прямым кодом.
Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы.
Пример.
Для числа +1101 Для числа -1101
прямой код 0,0001101; 1,0001101;
обратный код 0,0001101; 1,1110010.
дополнительный код:   0, 0001101 1,1110011
Итак, все целые отрицательные числа в компьютере представляются дополнительным кодом.

Комментариев нет:

Отправить комментарий