Покажите как в память компьютера будет записано число 106

Обновлено: 07.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 .


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

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

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



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 .

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

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

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

В базе данных библиотеки хранятся сведения о книгах. Почему поле «Код книги» было добавлено в эту таблицу? Код книги | Автор | Название Год выпуска дл … я нумерации книг чтобы подсчитать количество книг чтобы зашифровать книгу чтобы избежать дублирования записей в таблице ​

составить программу для вычисления функции y=1/x-4 Срочно ​

Петя недавно узнал, что такое магический квадрат и решил попробовать написать программу, которая будет составлять квадратную таблицу размером 3х3, сос … тоящую из произвольных целых чисел, в которой сумма элементов в каждой строке и в каждом столбце одна и та же. Но Петя - начинающий программист, поэтому он допустил в своей программе ошибку. Программа Пети выводит квадратную матрицу размером 3х3 такую, что если в ней обменять значения ровно двух ячеек, то таблица станет правильной и будет удовлетворять нужному условию. Например, если в таблице, которую выдала программа Пети 8 1 6 3 2 7 4 9 5 обменять местами числа 2 и 5, то получится правильная таблица 8 1 6 3 5 7 4 9 2 в которой сумма чисел в каждой строке и в каждом столбце одна и та же и равна 15. Вам будет дана квадратная таблица размера 3х3, заполненная целыми числами. Обменяйте в этой таблице значения ровно двух ячеек так, чтобы сумма чисел в каждой строке и каждом столбце получившейся таблицы была одна и та же.

Теперь в Хогвартсе новые правила приема. Все будущие чародеи и волшебники должны сначала сдать ЕГЭ по трем предметам (астрономии, заклинаниям, истории … магии), получив по каждому предмету от 0 до 100 баллов включительно. Вести прием будущих учащихся школы поручили Распределительной шляпе, а у нее, конечно же, свой критерий того, кто из двух претендентов на поступление в школу лучше. Шляпа сравнивает соответствующие баллы ЕГЭ двух претендентов и отдает предпочтение тому, у которого баллы хотя бы по двум из трех предметов строго больше, чем у другого. Например если первый претендент набрал баллы (25, 34, 75), а второй - (30, 40, 10), то шляпа выберет второго, так как у него по двум предметам баллы выше, чем баллы по этим же предметам у первого претендента. Напишите программу, которая поможет Распределительной шляпе выбрать одного из двух претендентов на обучение в Хогвартсе.

Дайте полные развёрнутые ответы на вопросы:1. Для исполнителя Чертёжник составьте алгоритм построения правильного треугольника, квадрата, пятиугольник … а и шестиугольника. На проверку нужно прислать скриншоты выполнения алгоритмов с отображением кода алгоритма и результатов работы (50 баллов).СРОЧНО ПОМОГИТЕ. 2. Для исполнителя Чертёжник составьте алгоритм построения следующей фигуры:

Если обратный код целого числа X имеет указанный вид, то чему будет равно его значение в десятичной системе счисления. Дано 11100001 в двоичной систем … е.

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

Числа в памяти компьютера хранятся в ячейках, а минимальный размер одной ячейки – 8 битов (1 байт). Числа в двоичной системе счисления и записываются к правому краю и оставшиеся слева записываем нулями (чем левее разряд, тем он старше). Знак числа хранит самый старший разряд (первый по списку слева). Если стоит 0 – число положительное, если 1 – число отрицательное.
Самое большое целое положительное число 011111112 = 12710

Задание 2. Укажите, каков был бы диапазон значений целых чисел, если бы для их хранения использовалась четырехразрядная ячейка.

Задание 3. Запишите внутреннее представление следующих десятичных чисел, используя восьмиразрядную ячейку: а) 32; б) –32; в) 102; г) –102; д) 126; е) –126.

а) 32 число положительное
3210 = 1000002
Ответ: 00100000

б) –32 число отрицательное
1) 3210 = 001000002
2) Обратный код: 11011111
3) Прибавим единицу: 11011111 + 1 = 11100000
Ответ: 11100000

в) 102 число положительное
10210 = 11001102
Ответ: 01100110

г) –102 число отрицательное
1) 10210 = 011001102
2) Обратный код: 10011001
3) Прибавим единицу: 10011001 + 1 = 10011010
Ответ: 10011010

д) 126 число положительное
12610 = 11111102
Ответ: 01111110

е) –126 число отрицательное
1) 12610 = 011111102
2) Обратный код: 10000001
3) Прибавим единицу: 10000001 + 1 = 10000010
Ответ: 10000010

Задание 4. Определите, каким десятичным числам соответствуют следующие двоичные коды восьмиразрядного представления целых чисел: а) 00010101; б) 11111110; в) 00111111; г) 10101010.

а) 00010101 число положительное
101012 = 1*2 4 + 1*2 2 + 1 = 16 + 4 + 1 = 2110
Ответ: 21

б) 11111110 число отрицательное
1) Вычтем единицу: 11111110 – 1 = 11111101
2) Обратный код: 00000010
3) 102 = 210
Ответ: –2

в) 00111111 число положительное
1111112 = 1*2 5 + 1*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 1 = 32 + 16 + 8 + 4 + 2 + 1 = 6110
Ответ: 61

г) 10101010 число отрицательное
1) Вычтем единицу: 10101010 – 1 = 10101001
2) Обратный код: 01010110
3) 10101102 = 1*2 6 + 1*2 4 + 1*2 2 + 2 = 64 + 16 + 4 + 2 = 8610
Ответ: –86

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

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

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

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

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

Как видно из рисунка внутренняя память представляет собой разряды, каждый из которых содержит один бит информации (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 – порядок.

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

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

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

Видео

Заключение

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

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