Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, программирование, полезный материал и многое другое.

Как в памяти компьютера представляются целые положительные и отрицательные числа?

Ответ

Для компьютерного представления целых чисел используется не­сколько различных способов, отличающихся друг от друга коли­чеством разрядов (под целые числа обычно отводится 8, 16, 32 или 64 разряда) и наличием или отсутствием знакового разряда.

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

Для представления беззнакового целого числа его следует пере­вести в двоичную систему счисления и дополнить полученный ре­зультат слева нулями до стандартной разрядности.

Основные темы параграфа:

— представление целых чисел;
— размер ячейки и диапазон значений чисел;
— особенности работы компьютера с целыми числами;
— представление вещественных чисел;
— особенности работы компьютера с вещественными числами.

Содержание урока

Представление целых чисел

Любая информация в памяти компьютера представляется в двоичном виде: последовательностью нулей и единиц. Исторически первым типом данных, с которыми стали работать компьютеры, были числа. Теперь это и числа, и тексты, и изображение, и звук. Работа с данными любого типа в конечном итоге сводится к обработке двоичных чисел — чисел, записываемых с помощью двух цифр, — 0 и 1.

Поэтому современные компьютерные технологии называют цифровыми технологиями.

В компьютере различаются два типа числовых величин: целые числа и вещественные числа. Различаются способы их представления в памяти компьютера.

Представление целых чисел

Часть памяти, в которой хранится одно число, будем называть ячейкой. Минимальный размер ячейки, в которой может храниться целое число, — 8 битов, или 1 байт. Получим представление десятичного числа 25 в такой ячейке. Для этого нужно перевести число в двоичную систему счисления. Как это делается, вы уже знаете.

Теперь осталось «вписать» его в восьмиразрядную ячейку (записать так называемое внутреннее представление числа). Делается это так:

Число записывается «прижатым» к правому краю ячейки (в младших разрядах). Оставшиеся слева разряды (старшие) заполняются нулями.

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

Чему он равен в десятичной системе? Можно расписать это число в развернутой форме и вычислить выражение. Но можно решить задачу быстрее. Если к младшему разряду этого числа прибавить единицу, то получится число 10000000. В десятичной системе оно равно 2 7 = 128. Значит:

011111112 = 128 — 1 = 127.

Максимальное целое положительное число, помещающееся в 8-разрядную ячейку, равно 127.

Теперь рассмотрим представление целых отрицательных чисел. Как, например, в 8-разрядной ячейке памяти будет представлено число -25?

Казалось бы, очевидным ответом является следующий: нужно в представлении числа 25 заменить старший разряд с 0 на 1. Но в компьютере все несколько сложнее.

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

Получить дополнительный код некоторого отрицательного числа -X можно по следующему алгоритму:

1) записать внутреннее представление соответствующего ему положительного числа +Х — это мы уже умеем;
2) записать обратный код полученного числа заменой во всех разрядах 0 на 1 и 1 на 0;
3) к полученному числу прибавить 1.

Определим по этим правилам внутреннее представление числа -2510 в восьмиразрядной ячейке:

1) 00011001
2) 11100110
3) +1

11100111 — это и есть представление числа -25.

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

Проверим полученный результат. Очевидно, что при сложении чисел +25 и -25 должен получиться ноль.

00011001
+
11100111
100000000

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

Из этого примера теперь можно понять, почему представление отрицательного числа называется дополнительным кодом.

Представление восьмиразрядного отрицательного числа -X дополняет представление соответствующего положительного числа +Х до значения 2 8 .

Следующая страница Размер ячейки и диапазон значений чисел

Доброго времени суток уважаемый пользователь. На этой страничке мы поговорим на такие темы, как: Вещественные числа, Вещественные числа в памяти компьютера.

Предположим, в компьютер встроили устройство, кото­рое переводит числа из десятичной системы счисления в двоичную и обратно. Достаточно ли этого для представления чисел в памяти ЭВМ? Оказывается, нет. Мало научиться записывать числа, важно облегчить процесс автоматизированного выполнения арифметических действий над ними.

Вернемся к первым ЭВМ. Основным видом их «деятель­ности» были вычисления, но объём оперативной памяти и быстродействие процессора были невелики и инженерам приходилось придумывать разнообразные способы хранения и обработки чисел, чтобы даже сложные расчёты выполня­лись за разумное время.

Вещественные числа в памяти компьютера.

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

Максимальным десятичным числом, которое можно было закодировать таким образом, было 255 в десятичной = 11111111 в двоичной = 2^8 — 1.

Для представления положительных и отрицательных це­лых чисел отводилось два байта (16 битов). В качестве при­знака, передающего знак числа, было выбрано значение старшего бита: 0 означал, что закодировано положительное число, 1 — отрицательное.

Максимальным десятичным числом, которое можно было закодировать таким образом, было 32767 в десятичной = 01111111 11111111 в двоичной =2^15. Целые без знака — это множество положитель­ных чисел в диапазоне [0, 2к-1], где к — это разряд­ность ячейки памяти, выделяемой под число. На­пример, если под целое число выделяется ячейка памяти размером в 16 разрядов (2 байта), то самое большое число будет таким: 0111111111111111. Например, десятичное число 255 после перевода в двоичную систему счисления и вписывания в 16-разрядную ячейку памяти будет иметь следующее внутреннее представление: 0000000011111111.

Отрицательные целые числа представляются в до­полнительном коде. Дополнительный код поло­жительного числа N — это такое его двоичное пред­ставление, которое при сложении с кодом числа N дает значение 2^к. Здесь к — количество разрядов в ячейке памяти. Например, дополнительный код числа 255 будет следующим: 1111111100000001.

Это и есть представление отрицательного числа -255. Сложим коды чисел 255 и —255:

Вычитание.

0000000011111111
11111111000000010000000000000000

Единичка в старшем разряде «выпала» из ячейки, поэтому сумма получилась равной нулю. Но так и должно быть: N + (— N) = 0. Процессор компьюте­ра операцию вычитания выполняет как сложение с дополнительным кодом вычитаемого числа. При этом переполнение ячейки (выход за предельные значе­ния) не вызывает прерывания выполнения программы. Это обстоятельство программист обязан знать и учитывать!

С вещественными числами дело обстояло немного слож­нее, поскольку надо было придумать способ, одинаковый для кодирования и больших, и маленьких чисел, то есть и миллион (1 000 000), и одну миллионную (0,000 001) хоте­лось бы кодировать посредством одного и того же алгорит­ма.

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

Такое представление чисел называется записью с плава­ющей точкой (запись 123,45 — запись с фиксированной точкой). В этой записи число имеет четыре характеристи­ки:

  • Знак числа.
  • Знак порядка.
  • Порядок (степень числа 10).
  • Мантисса (дробная часть числа).

При двоичном кодировании необходимо было все эти ха­рактеристики как-то отразить.

Максимальный порядок числа был равен 111111в двоичной = 63 в десятичной,следовательно, максимальным числом, которое можно было закодировать таким образом, было 10^63.

Формат представления вещественных чисел в ком­пьютере называется форматом с плавающей точ­кой. Вещественное число R представляется в виде произведения мантиссы т на основание системы счисления п в некоторой целой степени р, которую называют порядком: R = т х п^р.

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