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


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






Ключевые слова:

• разряд
• беззнаковое представление целых чисел
• представление целых чисел со знаком
• представление вещественных чисел


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

Оперативная память компьютера состоит из ячеек, каждая из которых представляет собой физическую систему, состоящую из некоторого числа однородных элементов. Эти элементы обладают двумя устойчивыми состояниями, одно из которых соответствует нулю, а другое — единице. Каждый такой элемент служит для хранения одного из битов — разряда двоичного числа. Именно поэтому каждый элемент ячейки называют битом или разрядом (рис. 1.2).

Рис. 1.2. Ячейка памяти

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

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

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

Ниже приведены максимальные значения для беззнаковых целых n-разрядных чисел:

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

Пример 1. Число 5310 = 1101012 в восьмиразрядном представлении имеет вид:

Это же число 53 в шестнадцати разрядах будет записано следующим образом:

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

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

На сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/) размещён информационный модуль «Число и его компьютерный код». С помощью этого ресурса вы можете получить дополнительную информацию по изучаемой теме.

Для выполнения операций с отрицательными числами используется дополнительный код, позволяющий заменить операцию вычитания сложением. Узнать алгоритм образования дополнительного кода вы можете с помощью информационного модуля «Дополнительный код», размещённого на сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/).


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

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

где:

m — мантисса числа;
q — основание системы счисления;
p — порядок числа.

Например, число 472 ООО ООО может быть представлено так: 4,72 • 108, 47,2 • 107, 472,0 • 106 и т. д.

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

Здесь знак «Е» обозначает основание десятичной системы счисления и читается как «умножить на десять в степени».

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

Для единообразия мантиссу обычно записывают как правильную дробь, имеющую после запятой цифру, отличную от нуля. В этом случае число 472 ООО ООО будет представлено как 0,472 • 109.

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

Пример:

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

Максимальное значение порядка числа для приведённого выше примера составляет 11111112 = 12710, и, следовательно, максимальное значение числа:

0,11111111111111111111111 • 101111111

Попытайтесь самостоятельно выяснить, каков десятичный эквивалент этой величины.

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

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

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

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

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

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

где:

m — мантисса числа;
q — основание системы счисления;
p — порядок числа.

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

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

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

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

4. Представьте число 6310 в беззнаковом 8-разрядном формате.

5. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком:

а) 01001100;
б) 00010101.

6. Какие из чисел 4438, 1010102, 25610 можно сохранить в 8-разрядном формате?

7. Запишите следующие числа в естественной форме:

а) 0,3800456 • 102;
б) 0,245 • 10-3;
в) 1,256900Е+5;
г) 9,569120Е-3.

8. Запишите число 2010,010210 пятью различными способами в экспоненциальной форме.

9. Запишите следующие числа в экспоненциальной форме с нормализованной мантиссой — правильной дробью, имеющей после запятой цифру, отличную от нуля:

а) 217,93410;
б) 7532110;
в) 0,0010110.

10. Изобразите схему, связывающую основные понятия, рассмотренные в данном параграфе.

Электронное приложение к уроку


Презентации, плакаты, текстовые файлы Вернуться к материалам урока Ресурсы ЭОР

Скачать материалы урока


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





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

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

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

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

Размер ячейки и диапазон значений чисел

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

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

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

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

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

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

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

Результат перевода:

2510 = 110012.

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

00011001.

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

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

01111111

Чему он равен в десятичной системе? Можно расписать это число в развернутой форме и вычислить выражение. Но можно решить задачу быстрее. Если к младшему разряду этого числа прибавить единицу, то получится число 10000000. В десятичной системе оно равно 27 = 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 должен получиться ноль.

0 0 0 1 1 0 0 1
+
1 1 1 0 0 1 1 1

1 0 0 0 0 0 0 0 0

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

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

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

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

Прямой код

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

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 0001101 – положительное число
1 0001101 – отрицательное число

Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления).

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

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

Дополнительный код

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

Все остальные разряды числа в дополнительном коде сначала инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа.

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

1 1110011 + 1 = 1 1110100

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

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

Операция сложения положительного числа и отрицательного числа, представленного в прямом коде

  1. Прямой код числа 5: 0 000 0101
    Прямой код числа -7: 1 000 0111
  2. Два исходных числа сравниваются. В разряд знака результата записывается знак большего исходного числа.
  3. Если числа имеют разные знаки, то вместо операции сложения используется операция вычитания из большего по модулю значения меньшего. При этом первый (знаковый) разряд в операции не участвует.
     _ 000 0111 000 0101 ------------- 000 0010 
  4. После выполнения операции учитывается первый разряд. Результат операции 1 000 0010, или -210.

Операция сложения положительного числа и отрицательного числа, представленного в дополнительном коде

  1. Прямой код числа 5: 0 000 0101
    Прямой код числа -7: 1 000 0111
  2. Формирование дополнительного кода числа -7.
    Прямой код : 1 000 0111
    Инверсия : 1 111 1000
    Добавление единицы: 1 111 1001
  3. Операция сложения.
     0 000 0101 + 1 111 1001 -------------- 1 111 1110 
  4. Проверка результата путем преобразования к прямому коду.
    Дополнительный код: 1 111 1110
    Вычитание единицы : 1 111 1101
    Инверсия : 1 000 0010 (или -210)

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


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


Ключевые слова:

  • разряд
  • беззнаковое представление целых чисел
  • представление целых чисел со знаком
  • представление вещественных чисел

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

Оперативная память компьютера состоит из ячеек, каждая из которых представляет собой физическую систему, состоящую из некоторого числа однородных элементов. Эти элементы обладают двумя устойчивыми состояниями, одно из которых соответствует нулю, а другое — единице. Каждый такой элемент служит для хранения одного из битов — разряда двоичного числа. Именно поэтому каждый элемент ячейки называют битом или разрядом (рис. 1.2).

Рис. 1.2. Ячейка памяти

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

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

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

Ниже приведены максимальные значения для беззнаковых целых n-разрядных чисел:

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

Пример 1. Число 5310 = 1101012 в восьмиразрядном представлении имеет вид:

Это же число 53 в шестнадцати разрядах будет записано следующим образом:

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

На сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/) размещён информационный модуль «Число и его компьютерный код». С помощью этого ресурса вы можете получить дополнительную информацию по изучаемой теме.

Для выполнения операций с отрицательными числами используется дополнительный код, позволяющий заменить операцию вычитания сложением. Узнать алгоритм образования дополнительного кода вы можете с помощью информационного модуля «Дополнительный код», размещённого на сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/).


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

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

где:

  • m — мантисса числа;
  • q — основание системы счисления;
  • р — порядок числа.

Например, число 472 000 000 может быть представлено так: 4,72 • 108, 47,2 • 107, 472,0 • 106 и т. д.

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

Здесь знак «Е» обозначает основание десятичной системы счисления и читается как «умножить на десять в степени».

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

Для единообразия мантиссу обычно записывают как правильную дробь, имеющую после запятой цифру, отличную от нуля. В этом случае число 472 000 000 будет представлено как 0,472 • 109.

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

Пример:

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

Максимальное значение порядка числа для приведённого выше примера составляет 11111112 = 12710, и, следовательно, максимальное значение числа:

  • 0,11111111111111111111111 • 101111111

Попытайтесь самостоятельно выяснить, каков десятичный эквивалент этой величины.

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


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

Для компьютерного представления целых чисел используются несколько различных способов, отличающихся друг от друга количеством разрядов (8, 16, 32 или 64) и наличием или отсутствием знакового разряда. Для представления беззнакового целого числа его следует перевести в двоичную систему счисления и дополнить полученный результат слева нулями до стандартной разрядности. При представлении со знаком самый старший разряд отводится под знак числа, остальные разряды — под само число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное, то 1. Положительные числа хранятся в компьютере в прямом коде, отрицательные — в дополнительном. Вещественные числа в компьютере хранятся в формате с плавающей запятой. При этом любое число записывается так:

А = ±m • qP,

где:

  • m — мантисса числа;
  • q — основание системы счисления;
  • р — порядок числа.

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

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

Целые числа без знака

Обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 000000002 до 111111112. В двубайтовом формате - от 00000000 000000002 до 11111111 111111112.

Диапазоны значений целых чисел без знака

 

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
0 ... 28-1 0 ... 255
0 ... 216-1 0 ... 65535

Примеры:

а) число 7210 = 10010002 в однобайтовом формате:

б) это же число в двубайтовом формате:

в) число 65535 в двубайтовом формате:

Целые числа со знаком

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

Диапазоны значений целых чисел со знаком

 

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
-27 ... 27-1 -128 ... 127
-215 ... 215-1 -32768 ... 32767
-231 ... 231-1 -2147483648 ... 2147483647

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

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

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

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

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

1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например:

2. Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы — нулями. Например:

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

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

 

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

Сложение и вычитание

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

Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:


Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:


Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = -710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

Полученный первоначально неправильный результат (обратный код числа -1110 вместо обратного кода числа -1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = -1010.

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

5. А и В положительные, сумма А+В больше, либо равна 2n-1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2n-1 = 27 = 128). Например:

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n-1. Например:

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

Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = -710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:


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

4. А и В отрицательные. Например:


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

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:

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

Умножение и деление

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 1100112 на 1011012.

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

 



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

 

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

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

Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 000000002 до 111111112 , а в двубайтовом формате - от 00000000 000000002 до 11111111 111111112.


Диапазоны значений целых чисел без знака

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
1 0 ... 28-1 0 ... 255
2 0 ... 216-1 0 ... 65535

Примеры:

а) число 7210 = 10010002 в однобайтовом формате:

б) это же число в двубайтовом формате:

в) число 65535 в двубайтовом формате:

Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак "плюс" кодируется нулем, а "минус" - единицей.

Диапазоны значений целых чисел со знаком

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
1 -27 ... 27-1 -128 ... 127
2 -215 ... 215-1 -32768 ... 32767
4 -231 ... 231-1 -2147483648 ... 2147483647

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

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

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

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


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

1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа - двоичный код его абсолютной величины. Например:


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

binary - Как отрицательные числа представлены в 32-битном целом числе со знаком?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд
.

c - Как отрицательные числа хранятся в памяти? Как узнать битовое представление?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
.

Сложение и вычитание положительных и отрицательных чисел

Числа могут быть положительными или отрицательными

Это числовая строка:

Отрицательные числа (-) Положительные числа (+)

«-» - отрицательный знак. "+" - положительный знак

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

Если число имеет без знака , это обычно означает, что это положительное число .

Воздушные шары и гиря

Давайте подумаем о числах как о воздушных шарах (положительных) и весах (отрицательных):

К корзине привязаны воздушные шары и гирьки:

Добавление положительного числа

Сложение положительных чисел - это просто сложение.

Мы можем добавить шары (мы добавляем положительное значение )

корзина тянется вверх (положительно)

Пример: 2 + 3 = 5

действительно говорит

"Положительное 2 плюс Положительное 3 равно Положительное 5"

Мы могли бы записать это как (+2) + (+3) = (+5)

Вычитание положительного числа

Вычитание положительных чисел - это просто вычитание.

Воздушные шары можно забрать ( вычитаем положительное значение )

корзина тянется вниз (минус)

Пример: 6 - 3 = 3

действительно говорит

"Положительное 6 минус Положительное 3 равно Положительное 3"

Мы могли бы записать это как (+6) - (+3) = (+3)

Добавление отрицательного числа

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

Мы можем добавлять веса (мы добавляем отрицательные значения )

корзина тянется вниз (минус)

Пример: 6 + (−3) = 3

действительно говорит

"Положительные 6 плюс отрицательные 3 равны положительным 3"

Мы могли бы записать это как (+6) + (−3) = (+3)

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

Значит, результат тот же :

  • (+6) - (+3) = (+3)
  • (+6) + (−3) = (+3)

Другими словами, вычитание положительного совпадает с добавлением отрицательного .

Вычитание отрицательного числа

Наконец, мы можем убрать веса (мы вычитаем отрицательных значений )

корзина тянется вверх (положительно)

Пример: Что такое 6 - (−3)?

6 - (- 3) = 6 + 3 = 9

Да, действительно! Вычесть отрицание - это то же самое, что добавить!

Два отрицания дают положительный результат

Что мы нашли?

Добавление положительного числа - это простое сложение...

Добавление положительного значения Добавление

Положительное и отрицательное вместе ...

Вычитание положительного
или
Добавление отрицательного
равно
Вычитание

Пример: Что такое 6 - (+3)?

6 - (+ 3) = 6 - 3 = 3

Пример: Что такое 5 + (−7)?

5 + (- 7) = 5 - 7 = −2

Вычитание негатива...

Вычитание отрицательного числа аналогично Добавление

Пример: Что такое 14 - (−4)?

14 - (- 4) = 14 + 4 = 18

Правила:

Все это можно поместить в два правила :

Правило Пример
+ (+) Два одинаковых знака превращаются в знак плюс 3 + (+ 2) = 3 + 2 = 5
- (-) 6 - (- 3) = 6 + 3 = 9
+ (-) Два непохожих знака превращаются в знак минуса 7 + (- 2) = 7 - 2 = 5
- (+) 8 - (+ 2) = 8 - 2 = 6

Они «как знаки», когда они похожи друг на друга (другими словами: одинаковые).

Итак, все, что вам нужно запомнить, это:

Два знака вроде становятся положительным знаком

Два знака в отличие от становятся отрицательным знаком

Пример: Что такое 5 + (- 2)?

+ (-) - это в отличие от знаков (они не совпадают), поэтому они становятся отрицательным знаком .

5 + (- 2) = 5 - 2 = 3

Пример: Что такое 25 - (- 4)?

- (-) - это , как знак , поэтому они становятся положительным знаком .

25 - (- 4) = 25 + 4 = 29

Пример: Что такое −6 + (+ 3)?

+ (+) - это , как и знак , поэтому они становятся положительным знаком .

−6 + (+ 3) = −6 + 3 = −3

Начните с −6 на числовой прямой, двигайтесь вперед на 3, и вы получите −3

А теперь поиграйся!

Попробуйте сыграть в Casey Runner, вам нужно знать правила положительного и отрицательного, чтобы добиться успеха!

Объяснение здравого смысла

И есть объяснение "здравого смысла":

Если я скажу "Ешь!" Я призываю вас поесть (положительный результат)

Если я скажу «Не ешьте!» Я говорю об обратном (отрицательном).

Теперь, если я говорю: « НЕ, не ешьте!», Я говорю, что не хочу, чтобы вы умерли с голоду, поэтому я снова говорю: "Ешь!" (положительный).

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

Другое объяснение здравого смысла

Друг +, враг -

.
+ + ⇒ + друг друга мой друг
+ - ⇒ - друг врага - мой враг
- + ⇒ - враг друга - мой враг
- - ⇒ + враг врага мой друг

Пример банка

Пример. В прошлом году банк по ошибке снял с вашего счета 10 долларов, и они хотят это исправить.

Значит, банк должен забрать отрицательные 10 долларов.

Допустим, ваш текущий баланс составляет 80 долларов, поэтому у вас будет:

80 долларов - (- 10 долларов) = 80 долларов + 10 долларов = 90 долларов

Таким образом, вы получаете на свой счет $, на 10 долларов больше .

Длинный пример, который вам может понравиться

Очки союзника

Элли может быть непослушным или милым. Так сказали родители Элли

«Если вы будете любезны, мы добавим 3 балла (+3).
Если вы непослушны, снимаем 3 балла (−3).
Когда вы набираете 30 очков, вы получаете игрушку. »

Ally начинает день с 9 очками: 9
Мама Элли обнаруживает пролитое молоко: 9 - 3 = 6

Тогда папа признается, что пролил молоко и пишет «отменить».

Как «отменить» минус 3?
Мы добавляем 3 снова!

Итак, мама считает: 6 - (−3) = 6 + 3 = 9

Итак, когда мы вычитаем отрицательное, мы получаем
баллов (т.е.е. так же, как добавление очков).


Таким образом, вычитание отрицательного числа аналогично добавлению

Несколько дней спустя. У Элли 12 очков.



Мама добавляет 3 очка, потому что комната Элли чистая. 12 + 3 = 15



Папа говорит: «Я убрал эту комнату» и пишет «отменить» на диаграмме.Мама считает: 15 - (+3) = 12



Папа видит, как Элли чистит собаку. Записывает на графике «+3». Мама считает: 12 + (+3) = 15



Элли бросает камень в окно. Папа пишет на диаграмме «−3».Мама считает: 15 + (−3) = 12

См .: как « 15 - (+3) », так и « 15 + (−3) » дают 12.

Итак:

Неважно, вычтете ли вы положительные
баллов или добавите отрицательные,
вы все равно потеряете баллы.

Итак, вычитание положительного
или
Добавление отрицательного
равно
Вычитание

Попробуйте эти упражнения...

А теперь попробуйте

.

ПРЕДСТАВЛЕНИЕ ДАННЫХ НА КОМПЬЮТЕРЕ

Пример

Преобразует шестнадцатеричное число 111 16 в его двоичный эквивалент.

Решение

Поместите каждое число под его разрядным значением.

256 x1 = 256

16 х 1 = 16

1 х 1 = + 1

273

Следовательно 111 16 = 273 10

Пример

Преобразование восьмеричного числа 321 8 в его двоичный эквивалент

Решение

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

3 = 011 2

2 = 010 2

1 = 001 2

Объединение трех слева направо

321 8 = 011010001 2

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

Чтобы преобразовать двоичные числа в их двоичные эквиваленты, просто сгруппируйте цифры двоичного числа в группы по четыре справа налево, например 11010001. Следующий шаг - записать шестнадцатеричный эквивалент каждой группы e.грамм.

1101-Д

0001-1

Эквивалент 11010001 - D1H или D1 16

Преобразование шестнадцатеричных чисел в десятичные и двоичные числа .

Преобразование шестнадцатеричных чисел в десятичные

Чтобы преобразовать шестнадцатеричное число в эквивалент с основанием 10, действуем следующим образом:

Сначала запишите разрядные значения, начиная с правой стороны.

  1. Если цифра представляет собой букву, например "A", укажите ее десятичный эквивалент
  • Умножьте каждую шестнадцатеричную цифру на ее соответствующее разрядное значение и затем сложите продукты
  • Следующие примеры показывают, как преобразовать шестнадцатеричное число в десятичное число

Пример

Преобразует шестнадцатеричное число 111 16 в его двоичный эквивалент

Решение

Поместите каждое число под его разрядным значением.

256 x1 = 256

16 х 1 = 16

1 х 1 = + 1

273

Следовательно 111 16 = 273 10

.

binary - Почему для чисел со знаком предпочтение отдается дополнению до двух, а не знаку и величине?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
.31 Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также