Как в памяти компьютера запишется число 34

Обновлено: 04.07.2024

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

  • число должно быть переведено в двоичную систему счисления;
  • должен быть определен объем памяти для этого числа.
  • .byte - размещает каждое выражение как 1 байт
  • .short - 2 байта
  • .long - 4 байта
  • .quad - 8 байт

Если речь идет о переменной, а чаще так и бывает, необходимо определить диапазон, в котором будет меняться значение переменной и, исходя из этого, резервировать для нее память. Поскольку современные процессоры Intel ориентированы на операции с 64-битными числами то, оптимальнее, все же ориентироваться на переменные такой же размерности.

Рассмотрим программу на языке C ( 700.c ).

В данном программе задано четыре переменных: однобайтовая e , двухбайтовая c , четырехбайтовая t , восьмибайтовая a . С помощью этой программы, к выведем область памяти, где хранятся эти переменные. Вот дамп памяти, который выдает программа ( рисунок 1 ).

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

  • Мы видим, что младшие байты чисел (переменных) в слове занимают в памяти младшие адреса. В свою очередь младшие слова в удвоенном слове — младший адрес. И, наконец, если рассматривать 64-битную переменную, то в ней младшее удвоенное слово должно занимать младший адрес. Это очень важный момент именно для анализа двоичного кода. В дальнейшем по одному виду области памяти вы сможете во многих случаях сразу идентифицировать переменные.
  • Как видно на все переменные затрачивается объем памяти, кратный четырехбайтовой величине. После каждой инициализированной переменной компилятор вставляет директиву выравнивания по 32-битной границе (Align 4). Впрочем, все совсем не так просто, и при другом порядке следования переменных выравнивание может быть иным.

И так. 16-битное число 0xА890 в памяти будет храниться как последовательность байтов 90 A8, 32-битное число 0x67896512 как последовательность 12 65 89 67. И, наконец, 64-битное число 0xF5C68990D1327650 — как 50 76 32 D1 90 89 C6 F5.

Числа со знаком в компьютере

Поскольку в памяти нет ничего, кроме двоичных разрядов, то вполне логично было бы выделить для знака числа отдельный бит. Например, имея одну ячейку, мы могли бы получить диапазон чисел от –127 до 127 ( 11111111 - 01111111 ). Подход был бы не так уж и плох. Вот только пришлось бы вводить отдельно сложение для знаковых и беззнаковых чисел. Существует и другой, альтернативный способ введения знаковых чисел. Алгоритм построения заключается в том, что мы объявляем некоторое число заведомо положительным и далее ищем для него противоположное по знаку исходя из очевидно тождества: a + (– a) = 0 .

На множестве однобайтовых чисел за единицу естественно взять двоичное число 00000001 . Решая уравнение 00000001 + x = 00000000 , мы приходим к неожиданному, на первый взгляд, результату x = 11111111, другими словами за -1 мы должны принять число 11111111 ( 255 в десятичном эквиваленте и FF в шестнадцатеричном). Попробуем развить нашу теорию. Очевидно, что -1 - (1) = -2 , т. е. по логике вещей, за -2 мы должны принять число 11111110 . Но с другой стороны число 00000010 вроде бы должно представлять +2 . Посмотрите 11111110 + 00000010 = 00000000 , т. е. выполняется очевидное тождество +2 + (-2) = 0 . Итак, мы на верном пути и процесс можно продолжить (см. Рисунок 2 ).

Внимательно посмотрите на таблицу (рисунок 2). Что же у нас получилось? Знаковые числа оказываются в промежутке -128 до 127 .

Таким образом, однобайтовое число можно интерпретировать и как число со знаком, и как беззнаковое число. Тогда, например, 11111111 в первом случае будет считаться -1 , а во втором случае 255 . Все зависит от нашей интерпретации. Еще интереснее операции сложения и вычитания. Эти операции будут выполняться по одной и той же схеме и для знаковых и для беззнаковых чисел. По этой причине и для операции сложения и для операции вычитания у процессора имеется всего по одной команде: add и sub . Разумеется, при выполнении действия может возникнуть переполнение или перенос в несуществующий разряд, но это отдельный разговор, и решить проблему можно, зарезервировав еще одну ячейку памяти. Все наши рассуждения легко переносятся на двух- четырех- и восьмибайтовые числа. Так максимальное двухбайтовое беззнаковое число будет 65 535 , а знаковые числа окажутся в промежутке от - 32 768 до 32 767 . Еще один интересный момент касается старшего бита. Как мы видим, по нему можно определить знак. Но в данной схеме бит совсем не изолирован и участвует в формировании значения числа вместе с остальными битами.

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

cmp rax, 0xFFFFFFFFFFFFFFFE

следует иметь в виду, что в действительности это, возможно, команда

Рассмотрим последовательность переменных:

signed char e=-2;
short int c=-3;
int b=-4;
__int64_t a=-5;

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

fe00 00 00 fd ff 00 00 fc ff ff ff 00 00 00 00 fb ff ff ff ff ff ff ff

Итак, значение однобайтовой переменной -2 в памяти компьютера представлено байтом 0xFE , значение двухбайтовой переменной -3, представлено последовательностью 0xFFFD , значение четырехбайтовой переменной -4 — последовательностью 0xFFFFFFFC , и, наконец, отрицательное восьмибайтовая переменная со значением -5 представлена байтами 0xFFFFFFFFFFFFFFFB . Напоминаю, что при представлении восьмибайтового числа младшие четыре байта должны находиться по адресу, меньшему, чем старшие.

Вещественные числа

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

Здесь ZN - знак числа, M - мантисса числа, обычно удовлетворяет условию M < 1 , N - основание системы счисления, q показатель, в общем случае может быть и положительным и отрицательным числом. Числа, представленные таким образом, называют еще числами с плавающей точкой (или числами с плавающей запятой ).

Рассмотрим конкретный пример. Попытаемся представить в нормализованном виде число 5,75 . Переведем вначале это число в двоичную систему счисления. В данном случае это делается достаточно легко. Действительно, 5 — это 101 , а 0,75 - это (1/2) + (1/4) . Другими словами 5,75 = 0b101,11 . Пишем далее 0b101.11 = 1.00111 * (2^3) . Таким образом, мы имеем следующие компоненты нормализованного числа:

Заметим, что первая цифра мантиссы в таком представлении всегда равна 1, а, следовательно, ее можно и вообще не хранить, и в формате Intel так и поступают. Кроме этого нужно иметь в виду, что показатель q в действительности (для процессора Intel) хранится в памяти в виде суммы с некоторым числом, так чтобы всегда быть положительным. Процессор Intelможет работать с тремя типами вещественных чисел:

  • короткое вещественное число . Всего для хранения отводиться 32 бита. Биты 0-22 резервируются для мантиссы. Биты 23-30 предназначены для хранения показателя q, сложенного с числом 127 . Последний 31 -й бит, предназначен для хранения знака числа ( 1 - знак отрицательный, 0 - положительный);
  • длинное вещественное число . Для хранения такого числа отводится 64 бита. Биты 0-51 нужны для хранения мантиссы. Биты 52-62 предназначены для хранения числа q , сложенного с числом 1024 . Последний 63-й бит определяет знак числа ( 1 - знак отрицательный, 0 - положительный);
  • расширенное вещественное число . Для хранения числа отводится 80 битов. Биты 0-63 - мантисса числа. Биты 64-78 — показатель q , сложенный с числом 16383 . 79 -й, последний бит отводится для знака числа ( 1 - знак отрицательный, 0 - положительный).

Очевидно, пришла пора разобрать конкретный пример представления в памяти вещественного числа. Итак, пусть в программе на языке Си имеем объявление переменной:

Тип float - это короткое вещественное число, т. е. в памяти оно, согласно выше записанному, будет занимать 32 бита. Попытаемся теперь нашим обычным способом заглянуть в память. Вот они, четыре байта, которые и призваны представлять наше число:

00 00 a1 c2

Чтобы легче было разбираться, представим последовательность из четырех байтов в двоичном виде:

00000000 00000000 10100001 11000010

Или более понятным способом, начиная со старшего байта для выделения мантиссы, показателя и знака:

11000010 10100001 00000000 00000000

Выделим мантиссу. На нее отводиться 23 бита. Имеем, таким образом, двоичное число 0100001 . Учтите, что биты мантиссы, отсчитываются, начиная со старшего (в данном случае 22 -го) бита, а оставшиеся нули естественно отбрасываются, поскольку вся мантисса располагается справа от запятой. Правда, это еще не совсем мантисса. Как ранее было сказано, единица перед запятой в представлении отбрасывается. Так что мы должны восстановить ее. Поэтому мантиссой будет число 0b1,0100001 . Знак всего числа, как мы видим, определяется единицей, следовательно, задает отрицательное число. А вот показатель нам следует получить из двоичного числа 0b10000101 . В десятичном представлении это число 133 . Вычитая число 127 (для короткого вещественного числа), получим 6 . Следовательно, для того чтобы получить из мантиссы истинное дробное число, нужно сместить в ней точку на шесть разрядов вправо. Окончательно получаем 0b1010000,1 . В шестнадцатеричной системе счисления это просто 0x50,8 , а в десятичной получаем как раз 80,5 .

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

00 80 fb 42

Попытайтесь доказать, что это есть ничто иное, как представление числа 125,75 .

Из сказанного в данном разделе можно сделать вывод, что при использовании в программе вещественных чисел они могут стать приближенными еще до того, как с ними были произведены какие-либо действия. Это вызвано тем, что для записи чисел в память их нормализуют.

Ассемблер вам в радость! Пока! Подписываемся на мой канал Old Programmer .

Получить внутреннее представление целого числа - 34 и 34 в 8 - разрядной ячейке памяти компьютера.


34 = 32 + 2 = 00100010 (2) - 34 = 0 - 34 = 00000000 - 00100010 (2) = 11011110 (2) .


Получить двоичную форму внутреннего представления целого числа в 2 - х байтовой ячейке 2304?

Получить двоичную форму внутреннего представления целого числа в 2 - х байтовой ячейке 2304.


Представление информации в памяти компьютераПомогите срочно нужно?

Представление информации в памяти компьютера

Помогите срочно нужно.


Cortez12387 10 мая 2020 г., 05:51:35 | 10 - 11 классы

Получить шестнадцатеричную форму внутреннего представления целого числа - 1450в 2 - х байтовой ячейке?

Получить шестнадцатеричную форму внутреннего представления целого числа - 1450в 2 - х байтовой ячейке.


Помогите, получить двоичную форму внутреннего представления целого числа 2345 в 2 - х байтовой ячейке?

Помогите, получить двоичную форму внутреннего представления целого числа 2345 в 2 - х байтовой ячейке.


Vasdsddsddsd 17 авг. 2020 г., 02:03:07 | 10 - 11 классы

Помогите пожалуйста?

По шестнадцатеричной форме внутреннего представления целого числа в 2 - байтовой ячейке восстановить само число : 1)F7AA 2)F6D7.


2012masha2012 26 апр. 2020 г., 20:16:46 | 5 - 9 классы

Характеристики процессора и внутренней памяти компьютера (быстродействие, разрядность, объем памяти и др?

Характеристики процессора и внутренней памяти компьютера (быстродействие, разрядность, объем памяти и др.


Stasyabram14 7 февр. 2020 г., 01:16:41 | 5 - 9 классы

Ля кодирования целых чисел в памяти компьютера выделяется по 1 байту на число?

Ля кодирования целых чисел в памяти компьютера выделяется по 1 байту на число.

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


Ник11111111111 1 нояб. 2020 г., 10:13:58 | 5 - 9 классы

Получить шестнадцатеричную форму внутреннего представления целого числа - 1453 в 2 - х байтовой ячейке?

Получить шестнадцатеричную форму внутреннего представления целого числа - 1453 в 2 - х байтовой ячейке.


Перечислите устройства внутренней памяти компьютера?

Перечислите устройства внутренней памяти компьютера.


Получите представления в 16 - разрядной ячейке памяти следующих целых десятиных чисел?

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


Шрифт - графический рисунок начертаний букв и знаков, составляющих единую стилистическую и композиционную систему, набор символов определённого размера и рисунка.


ШРИФТ в полиграфии - комплект литер, воспроизводящий какой - либо алфавит (латинский, русский, арабский, греческий и др. ), а также цифры и знаки. Шрифты различаются характером рисунка (см. Гарнитура), наклоном (прямой, курсив, наклонный), насыщен..


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

Основные понятия и положения

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

Схематично компьютерная память выглядит так, как показано на схеме ниже:

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

Как видно из рисунка внутренняя память представляет собой разряды, каждый из которых содержит один бит информации (0 или 1). А восемь битовых кластеров образуют один байт (машинное слово).

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

Отсюда также вытекает правило, что данные в компьютере представляются дискретно (отдельно). В качестве примера приведем изображение на мониторе. Оно состоит из точек (пикселей). Цвет же каждой точки задается последовательностью из 0 и 1.

Это интересно Графические редакторы что это в информатике 🎨

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

Существует несколько вариантов для отображения чисел в ЭВМ, и зависят они от формата числа.

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

Для представления целых чисел, в вычислительных машинах существует несколько способов, которые используют 8,16, 24 или 32 разряда памяти (1, 2, 3 и 4 байта).

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

Чтобы представить число в беззнаковой форме необходимо перевести его в двоичную систему счисления и дополнить с начала нулями до нужной разрядности (дополняем до 1,2,3 или 4 байт).

Также следует отметить, что есть ограничения на количество чисел, которые можно представить в n разрядной ячейке. Для беззнаковых величин оно составляет ​\( 2^n \).

максимальные и минимальные значения беззнаковых чисел

Пример: Перевести 54 в беззнаковый формат.

Находим представление 54 в бинарной системе счисления:

\( 1) \ 54:2 \ = \ 27 \ | \ Остаток \ 0 \)
\( 2) \ 27:2 \ = \ 13 \ | \ Остаток \ 1 \)
\( 3) \ 13:2 \ = \ 6 \ | \ Остаток \ 1 \)
\( 4) \ 6:2 \ = \ 3 \ | \ Остаток \ 0 \)
\( 5) \ 3:2 \ = \ 1 \ | \ Остаток \ 1 \)

Итого ​ \( 54_ \) равняется \( 110110_ \). ​​

Дополняем результат до одной из стандартных разрядностей (8 бит) = 00110110.

Ответ: 00110110.

Для представления чисел, которые участвуют в вычислительных операциях, используется представление со знаком. В такой форме записи старший разряд всегда отводится под знак (0 для положительных чисел и 1 для отрицательных).

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

В случае со знаковым представлением также существуют ограничения. Так как один разряд отводится под знак, то в n-разрядную ячейку можно записать \( (2^ -1) \) положительных и ​\( 2^ \) отрицательных значений.

диапазон знаковых чисел

Для того чтобы перевести число в обратный и дополнительный код вам надо:

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

Пример: Перевести -54 в дополнительный код.

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

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

Всего существует два способа для представления множества вещественных значений – естественная или экспоненциальная форма.

В жизни мы пользуемся естественной формой. Так число 42,6 мы можем записать несколькими способами. Например:

  • ​ \( 426*10^ \) ​;
  • ​ \( 4,26*10^1 \) ​;
  • ​ \( 42,6*10^0 \) ​.

В компьютере же используется экспоненциальная форма записи. Выглядит она так:

вещественное число

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

q – система счисления, в которой представлено число.

P – порядок.

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

Чем больше бит отводится под мантиссу, тем точнее представляемая величина, чем больше ячеек отводится под порядок, тем шире диапазон от наименьшего числа, до наибольшего числа, представляемого в компьютере при заданном формате.

Так как компьютерная память величина дискретная и конечная, то и множество вещественных чисел, с которым работает ЭВМ также конечно.

Видео

Заключение

Вот мы и разобрались с представлением чисел в компьютере и информатике. Краткий материал из данной статьи вы можете использовать для своей онлайн-презентации. При возникновении вопросов оставляйте их в комментариях.

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

Информатика. 10 класса. Босова Л.Л. Оглавление

§13. Представление чисел в компьютере

Самым первым видом данных, с которыми начали работать компьютеры, были числа. ЭВМ первого поколения могли производить только математические расчёты (вычисления).

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

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

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

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

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

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

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

Например, десятичные числа 130 и 39 в восьмиразрядном представлении будут иметь вид:


Понятно, что существуют ограничения на числа, которые могут быть записаны в n-разрядную ячейку памяти. Максимальное значение целого неотрицательного числа достигается в случае, когда во всех разрядах ячейки хранятся единицы. Для n-разрядного представления оно будет равно 2 n -1. Минимальное число соответствует n нулям, хранящимся в n разрядах памяти, и равно нулю. Далее приведены диапазоны значений для беззнаковых целых n-разрядных чисел:


При знаковом представлении целых чисел старший разряд ячейки отводится под знак (0 — для положительных, 1 — для отрицательных чисел), а остальные разряды — под цифры числа.

Представление числа в привычной для человека форме «знак-величина», при которой старший разряд ячейки отводится под знак, а остальные разряды — под цифры числа, называется прямым кодом.

Например, прямые коды чисел 48 и -52 для восьмиразрядной ячейки равны:



В математике множество целых чисел бесконечно.

Компьютер работает с ограниченным множеством целых чисел.

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

В прямом коде числа можно хранить, но выполнение арифметических операций над числами в прямом коде затруднено — оно требует более сложной архитектуры центрального процессора, «умеющего» выполнять не только сложение, но и вычитание, а также «знающего» особый алгоритм обработки не имеющего «веса» знакового разряда. Этих трудностей позволяет избежать использование дополнительного кода.

Чтобы понять сущность дополнительного кода, рассмотрим работу реверсивного счётчика, последовательность показаний которого можно представить в виде замкнутого кольца из чисел (рис. 3.5).


Рис. 3.5. Реверсивный счётчик

При возрастании показаний счётчика до максимального, например до 999, следующими его состояниями должны быть 1000, 1001, 1002 и т. д. Но для изображения старшей единицы в счётчике не хватает разряда, происходит переполнение разрядной сетки. Поэтому мы увидим 000, 001, 002 и т. д.

При убывании показаний счётчика после состояния 000 будут идти 999, 998, 997 и т. д. Но после достижения нуля последовательное вычитание единицы должно давать -1, -2, -3 и т. д.

Будем рассматривать числа 999, 998, 997 как коды чисел -1, -2, -3 и проверим на их примере соотношение: у + (-у) = 0:

1 + 999 = 1000;
2 + 998 = 1000;
3 + 997 = 1000.

С учётом того что единица переполнения теряется, мы, сложив число и код противоположного ему числа, получаем ноль!

Вот ещё несколько примеров:

5-2 = 5 + [-2] = 5 + 998 = 1003;
7-5 = 7 + [-5] = 7 + 995 = 1002.

Для устранения неоднозначности в кольце будем считать половину состояний (0-499) кодами нуля и положительных чисел, а оставшуюся половину (500-999) — кодами отрицательных чисел.

Таким образом, дополнительный код положительного числа совпадает с этим числом, а для отрицательного числа он равен дополнению его величины до числа q n , возникающего при переполнении разрядной сетки. Здесь q — основание системы счисления, n — число разрядов в разрядной сетке.

Рассмотрим алгоритм получения дополнительного n-разрядного кода отрицательного числа:

1) модуль числа представить прямым кодом в n двоичных разрядах;
2) значения всех разрядов инвертировать (все нули заменить единицами, а единицы — нулями);
3) к полученному представлению, рассматриваемому как n-разрядное неотрицательное двоичное число, прибавить единицу.

Пример 1. Найдём 16-разрядный дополнительный код отрицательного числа -201710.


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

Выполним эту операцию в 16-разрядных машинных кодах.

Нам потребуются прямой код числа 48 и дополнительный код числа -2017.


Рассмотрим полученный результат. Это отрицательное число (об этом говорит 1 в знаковом разряде), представленное в дополнительном коде. Перейдём к прямому коду модуля соответствующего числа, по которому сможем восстановить десятичное представление результата.

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


Получаем: -111101100012 = -1969.

13.2. Представление вещественных чисел

В математике множество вещественных чисел непрерывно, бесконечно и не ограничено.

Попробуйте обосновать это утверждение.

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

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

Например: 12,34; 0,0056; -708,9.

В экспоненциальной форме вещественное число а представляется как а = ± m • q p , где m — мантисса числа, q — основание системы счисления, р — порядок числа.

Например, длину некоторого отрезка, равного 47,8 см, можно записать так:

1) 478 • 10 -1 см;
2) 47,8 • 10 0 см;
3) 4,78 • 10 1 см;
4) 0,478 • 10 2 см;
5) 0,000478 • 10 5 см.

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

Нормализованная запись отличного от нуля вещественного числа 1) — это запись вида а = ± m • q p , где р — целое число (положительное, отрицательное или ноль), m — дробь, целая часть которой содержит одну значащую (ненулевую) цифру, т. е. 1 ≤ m < q.

1) Стандарт IEEE 754.

Примеры нормализации чисел:

1) 31,415926 = 3,1415926 • 10 1 ;
2) 1000 = 1,0 • 10 3 ;
3) 0,123456789 = 1,23456789 • 10 -1 ;
4) 0,00001078 = 1,078 • 108 -5 ;
5) 1000,00012 = 1,00000012 • 102 11 ;
6) AB,CDEF16 = A,BCDEF16 • 1016 1 .

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


Поясним это на примере калькулятора, который производит вычисления в десятичной системе счисления. Пусть это будет калькулятор с десятью знакоместами на дисплее:

• 6 знакомест отводится под мантиссу (одно знакоместо отводится под знак мантиссы, четыре — под цифры мантиссы, одно — под точку, разделяющую целую и дробную части мантиссы);
• одно знакоместо отводится под символ «Е»;
• три знакоместа отводятся под порядок (одно — под знак порядка, два — под цифры порядка).

У калькуляторов первая значащая цифра, с которой и начинается мантисса, изображается перед точкой.

Число 12,34 в таком калькуляторе будет представлено как +1.234Е+01.

Число 12,35 будет представлено как + 1.235Е+01.

Как известно, между числами 12,34 и 12,35 находится бесконечное множество вещественных чисел, например: 12,341; 12,3412; 12,34123 и т. д.

Каждое из этих чисел в нашем калькуляторе будет представлено как + 1.234Е+01. Для последних разрядов у нас просто не хватает знакомест! Аналогичная ситуация имеет место и в компьютерном представлении вещественных чисел, независимо от того, ячейки какой разрядности там использованы.

Получается, что точно мы можем представить в компьютере лишь некоторую конечную часть множества вещественных чисел, а остальные числа — лишь приближённо.

Таким образом, множество вещественных чисел, представляемых в компьютере, дискретно, конечно и ограничено.

САМОЕ ГЛАВНОЕ

В математике множество целых чисел дискретно, бесконечно и не ограничено.

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

В математике множество вещественных чисел непрерывно, бесконечно и не ограничено.

Для компьютерного представления вещественных чисел используется нормализованная запись вещественного числа а = ± m • q p , где q — основание системы счисления, р — целое число (положительное, отрицательное или ноль), m — дробь, целая часть которой содержит одну значащую (ненулевую) цифру, т. е. 1 ≤ m < q.

Компьютерное представление вещественных чисел дискретно, конечно и ограничено.

Вопросы и задания

*7. Найдите десятичные эквиваленты чисел, представленных в дополнительном коде: 1) 00000100; 2) 11111001.

8. Для хранения целого числа со знаком в компьютере используется два байта. Сколько единиц содержит внутреннее представление числа -101, записанного:

1) в прямом коде;
2) в дополнительном коде?

9. Вычислите с помощью калькулятора (приложение Windows) в режиме «Программист» следующие примеры:

Как вы можете объяснить полученные результаты?

10. Запишите десятичные числа в нормализованной форме:

1) 217,934; 2) 75321; 3) 10,0101; 4) 200450.

11. Сравните следующие числа:

1) 318,4785 • 10 9 и 3,184785 • 10 11 ;
2) 218,4785 • 10 -3 и 1847,85 • 10 -4 .

12. Выполните операцию сложения:

1) 0,397621 • 10 3 + 0,2379 • 10 1 ;
2) 0,251452 • 10 -3 + 0,125111 • 10 -2 .

13. Чем ограничивается диапазон представимых в памяти компьютера вещественных чисел?

14. Почему множество вещественных чисел, представимых в памяти компьютера, дискретно, конечно и ограничено?

*15. Попытайтесь самостоятельно сформулировать основные принципы представления данных в компьютере.


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

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.

Получите невероятные возможности



2. Раздавайте видеоуроки в личные кабинеты ученикам.


3. Смотрите статистику просмотра видеоуроков учениками.

Конспект урока "Представление чисел в компьютере"

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

А начнём мы с вами с целых чисел.

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

Итак, оперативная память представляет собой таблицу, то есть состоит из ячеек.

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

То есть, можно сказать, что каждая ячейка оперативной памяти содержит число, представленное в двоичной системе счисления, так как вся информация представлена в памяти компьютера именно в этой системе счисления. Каждая ячейка также включает в себя некоторое количество клеточек (ячеек). В каждой клеточке содержится число ноль или один. Это зависит от того, какой код соответствует изначальному числу.

Давайте рассмотрим одну ячейку, которая состоит из n разрядов.

Она разбита на n клеточек. n обозначает количество разрядов или битов, отведённых под исходное число. Первая клеточка слева – это (n-1)-й разряд. Вторая – (n-2)-й разряд и так далее. Последняя клеточка – это 0-й разряд.

Можно сказать, что разряд – это степени для числа два в двоичной системе счисления.

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

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

Беззнаковое представление используется для таких объектов, как адреса ячеек; счётчиков, например, количество символов в тексте; чисел, которые обозначают дату и время; размеров графических изображений в пикселях и много другое.

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

Давайте рассмотрим таблицу максимальных значений для беззнаковых целых n -разрядных чисел:

В первом столбце указано количество битов, во втором минимальное значение, а в третьем – максимальное значение.

Минимальное значение во всех строка равно нулю. А вот максимальное вычисляется по формуле 2 n – 1. То есть максимальное восьмиразрядное число будет равно 255.

2 8 – 1 = 256 – 1 = 255.

Максимальное значение целого неотрицательного числа достигается в том случае, когда во всех разрядах ячейки хранятся единицы.

Давайте разберёмся на примере.

Возьмём восьмиразрядную ячейку и поместим в неё максимально допустимое число 255.

Исходя из этого можем сказать, что наша ячейка состоит из 8 разрядов или клеточек. При переводе числа 255 в двоичную систему счисления получим 8 единиц. То есть в каждой клеточке будет содержаться по единице.

Число разрядов n=8. Давайте над каждой клеточкой расставим соответствующий разряд начиная с крайней левой.

Давайте вспомним общий вид нашей ячейки.

То есть ячейка из n разрядов, в нашем случае 8, состоит из n клеточек (снова из 8), а каждый разряд вычисляется по формуле n – 1, n – 2 и так далее. В зависимости от того, на каком месте находится ячейка.

А если мы возьмём все наши единицы и проставим над ними наши разряды, то мы можем перевести наше число из двоичной системы счисления в десятичную уже известным нам образом.

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

Если мы возьмём число 65 535, то в двоичной системе счисления оно будет состоять из 16 единиц. А если шестнадцатиразрядную ячейку снова представить, как строку, состоящую из 16 клеточек и расставить соответствующие разряды, то она будет выглядеть следующим образом:

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

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

Наше число состоит из 7 цифр. Поместим его в восьмиразрядную ячейку.

Но ячеек 8, а цифр 7. В таком случае помещаем наше число в крайние справа семь ячеек, а в первую левую запишем ноль.

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

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

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

Это то, что касается беззнакового представления чисел.

При представлении числа со знаком (плюсом, если это положительное число, и минусом, если это отрицательное число) самый старший разряд, то есть тот, который находится слева, отводится под знак числа, а остальные разряды – под само число. Если число положительное, то в самый старший разряд (самую левую клеточку) пишется цифра 0, а если отрицательное, то 1.

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

Например, число 56 в двоичной системе будет равно: 1110002.

Оно в себя включает 6 цифр. Запишем его в восьмиразрядную ячейку.

Две оставшиеся слева клеточки заполним нулями, так как число положительное.

А если бы наше число было отрицательным, то оно выглядело бы следующим образом.

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

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

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

· записать прямой код модуля числа;

· инвертировать его (заменить единицы нулями, нули – единицами);

· прибавить к инверсному коду единицу.

Давайте рассмотрим применение этого алгоритма на примере.

Нам дано число –25. При переводе в двоичную систему модуля числа получим следующее число: 110012.

Теперь смотрим на первый пункт. Нам необходимо записать прямой код модуля числа. Возьмём восьмиразрядный код. То есть наше число будет записано в клеточки, а в трёх пустых клеточках слева от него – нули.

Далее во втором пункте нам необходимо инвертировать наше число, то есть заменить единицы нулями, а нули – единицами. Получим следующее:

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

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

Любое вещественное число A может быть записано в экспоненциальной форме:

m – мантисса числа.

q – основание системы счисления.

p – порядок числа.

Возьмём для примера число 1 345 572. Его можно представить различными способами:

С экспоненциальной формой записи вы наверняка уже встречались. Например, считая на калькуляторе, вы могли получить следующее число: 1,34Е + 6.

Оно обозначает следующее: 1,34 · 10 6 . То есть знак Е – это основание десятичной системы счисления.

Из примера, можно сделать вывод, что положение запятой может изменяться.

Для единообразия мантиссу обычно записывают как правильную дробь, которая имеет после запятой цифру, отличную от нуля. То есть наше число 1 345 572 будет выглядеть следующим образом: 1 345 572 = 0,1345572 • 10 7 .

Вещественное число может занимать в памяти компьютера 32 или 64 разряда.

То есть наша ячейка в памяти может состоять из 32 или 64 клеточек. При этом выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.

Давайте разберёмся на примере. Возьмём число 125 в десятичной системе счисления и запишем её в тридцатидвухразрядную ячейку.

Для начала нам нужно перевести число 125 в двоичную систему счисления. Получим следующее: 12510 = 11111012.

Теперь запишем это число в экспоненциальной форме.

Ставим равно. Мантиссой числа будет следующее: 0,1111101.

Ставим знак умножения. q – это основание системы счисления. В нашем случает это двоичная система счисления. Число 2 в двоичной системе счисления будет состоять из цифр 1 и 0. Запишем его.

11111012 = 0,1111101 · 10.

p – это порядок числа или же степень. Мы с вами перенесли наше число на семь знаков вправо после запятой. Значит наше p будет равно 7. При переводе числа семь в двоичную систему счисления получим следующее:

11111012 = 0,1111101 · 10 111 .

Мы с вами записали двоичное число в экспоненциальной форме.

Теперь перенесём всё в клеточки ячейки памяти, размером 32 разряда.

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

Первую клеточку слева выделяем под знак. Так как наше число положительное, то ставим цифру 0.

В разделе «Знак и порядок» запишем число 7 в двоичной системе счисления. Оставшиеся клеточки заполним нулями.

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

Далее запишем наше число, а оставшиеся клеточки заполним нулями.

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

Диапазон представления вещественных чисел определяется количеством разрядов, отведённых для хранения порядка чисел, а точность – количеством разрядов, отведённых для хранения мантиссы.

Давайте рассмотрим следующий пример:

В нём максимальное значение порядка числа составляет: 11111112 = 12710.

Следовательно, максимальное значение числа будет равно: 0,11111111111111111111111 · 10 111 .

Широкий диапазон представления вещественных чисел важен для решения научных и инженерных задач. Но в тоже время алгоритмы обработки таких чисел более трудоёмки по сравнению с алгоритмами обработки целых чисел.

А теперь пришла пора подвести итоги урока.

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

Читайте также: