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

{19}\)

unsigned long long

unsigned long, unsigned long long

qword

Содержание

Представление знаковых целых чисел (дополнительный код)

Для представления знаковых типов данных используется дополнительный код. Такое представление данных удобно для реализации арифметических операций с целыми числами. В дополнительном коде число -1 кодируется одними единичными битами. В этом случае при увеличении числа -1 на 1, как если бы это увеличение происходило в двоичной системе счисления «в столбик», все биты обнулятся и произойдет перенос в старший разряд, который не может быть сохранен в переменной данного типа и получится число 0. Аналогично, число -2 представляется в памяти, как 11…110, и при увеличении этого числа на 1 получится число -1. Число -3 кодируется, как 11…101 и т. д. Минимальное значение, которое может быть в данном случае записано в переменной знакового типа представляется в памяти, как 100…000, оно соответствует значению \(-2^{31}\) для 32-битного типа, это — минимальное отрицательноые число, представимое в данном типе.

xor

Битовое отрицание

~

not

Битовый сдвиг влево

<<

shl

Битовый сдвиг вправо

>>

shr

Например, пусть даны два числа:

Их представления в двоичной системе счисления будут такими:

a = 00…00101

b = 00…00110

Если к каждой паре соответствующих бит применить операцию «И», то получится число, имеющее двоичное представление 00…00100, то есть число 4. Поэтому следующий код:

cout << (a & b) << endl;

выведет число 4.

Аналогично, в результате применения побитовой операции «ИЛИ» получится двоичное 00…00111, то есть 7,

cout << (a | b) << endl;

выведет число 7.

А применение операции XOR (исключающее или)

cout << (a ^ b) << endl;

даст число 3, то есть двоичное 00.k\) с отбрасыванием дробной части. Например,

cout << (a >> 1) << endl;

выведет число 3, а

cout << (a >> 2) << endl;

выведет число 1.

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







13.1. Представление целых чисел
13.1. Представление целых чисел (продолжение)

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

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

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

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

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

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

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

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

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

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

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

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

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

Минимальное отрицательное число, которое можно записать в знаковом представлении в n разрядах, равно 2n-1. Максимальное положительное число, которое можно записать в знаковом представлении в n разрядах, равно 2n-1 — 1. Ниже приведены диапазоны значений для знаковых представлений целых чисел в ячейках с различной разрядностью:

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

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

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

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

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

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

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




§ 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 — основание системы счисления;
  • р — порядок числа.

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

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 0102 пятью различными способами в экспоненциальной форме

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

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


Оглавление

§ 1.1. Системы счисления

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

§ 1.3. Элементы алгебры логики


Беззнаковое и знаковое представление целых чисел

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

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

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

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

Беззнаковое представление

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

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

К примеру, десятичные числа 130 и 39 в 8-разрядном описании представляются так:

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

В таблице описаны диапазоны значений для беззнаковых целых n-разрядных чисел:

Знаковое представление и прямой код

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

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

К примеру, прямые коды чисел 48 и -52 в 8-разрядной ячейке выглядят так:

Наименьшее отрицательное число, которое описывается в знаковом представлении в n разрядах, равняется 2n-1. Наибольшее неотрицательное число, формируемое в знаковом представлении в n разрядах, равняется 2n-1 – 1. В таблице описаны диапазоны значений для знаковых представлений целых чисел в ячейках с разной разрядностью:

В математических науках числовое множество не имеет конца. При этом компьютер осуществляет работу с конечным множеством целых чисел.

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

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

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

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

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

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

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

001 + 999 = 1000;

002 + 998 = 1000;

003 + 997 = 1000.

Учитывая то, что единица переполнения исчезает, тогда, просуммировав число и код противоположного ему числа, возникает ноль. Далее представлены ещё некоторые примеры:

5 – 2 = 2 + [-2] = 5 + 998 = 1003;

7 – 5 = 7 + [-5] = 7 + 995 = 1002.

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

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

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

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

Пример 1

Требуется сформировать 16-разрядный дополнительный код отрицательного числа -201810.

Прямой код |-201810| = 201810 00000111111000102
Инвертирование 11111000000111012
Добавление единицы +                            1
Дополнительный код 11111000000111102

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

Пример 2

Ясно, что 49 – 2017 = -1966.

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

Прямой код числа 49 00000000001100012
Дополнительный код числа -2017 11111000000111112
Поразрядное суммирование кодов 11111000010100002

В итоге формируется отрицательное число, это можно понять по единице в знаковом разряде. Оно представлено в дополнительном коде. Если перейти к прямому коду модуля текущего числа, то по нему можно построить 10-ичную форму результата.

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

Инвертирование 00000111101011112
Добавление единицы +                            1
Прямой код модуля результата 00000111101100002

В итоге: -111101100002 = -1966.

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

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

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

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

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

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

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

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

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех разрядах ячейки хранятся единицы. Для n-разрядного представления оно будет равно 2 n -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 • 10 8 , 47,2 • 10 7 , 472,0 • 10 6 и т. д.

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

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

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

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

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

Пример:

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

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

0,11111111111111111111111 • 10 1111111

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

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

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

Для компьютерного представления целых чисел используются несколько различных способов, отличающихся друг от друга количеством разрядов (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 • 10 2 ;
б) 0,245 • 10 -3 ;
в) 1,256900Е+5;
г) 9,569120Е-3.

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

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

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

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

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

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

1) адрес ячейки
2) температура в холодное время года
3) положительное число
4) счетчик количества символов в слове

2. Десятичный эквивалент числа 10010001, записанного
в прямом коде, 8-разрядном формате со знаком:

1) 17
2) -17
3) 145
4) -145

3. В 8-разрядном формате не может быть сохранено число:

1) 28010
2) 10112
3) 3468
4) 4516

4. Положительное число, записанное в 8-разрядном прямом коде

1) 11111001
2) 00010000
3) 11110110
4) 10000001

5. Представление числа 5438,9 в экспоненциальной фор­ме с нормализованной мантиссой:

1) 5,4389 · 103
2) 0,54389Е+04
3) 543,89Е01
4) 0,0543893Е+05

6. Естественная форма записи числа 0,345Е+04:

1) 3450
2) 3,45 · 103
3) 0,345 · 104
4) 345

7. Впишите пропущенные слова.

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

§1.2 ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В КОМПЬЮТЕРЕ
1.2.1. ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ
1.2.2. ПРЕДСТАВЛЕНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ

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

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

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

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

5. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком:
А) 01001100;
Б) 00010101.
А) +76. Б) +45.

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

7. Запишите следующие числа в естественной форме:
А) 0,3800456·102 ;
Б) 0,245 ·10-3 ;
А) 1,256900Е+5;
Б) 9,569120Е-3.

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

9. Запишите следующие числа в экспоненциальной форме с нормализованной мантиссой – правильной дробью, имеющей после запятой цифру, отличную от нуля:
А) 217, 93410 ;
Б) 7532110;
В) 0,0010110.
А) 0,217934·103
Б) 0,75321·105
В) 0,101·10-2

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

3.1.1. Аппаратное представление целых чисел. О чём не пишут в книгах по Delphi

3.1.1. Аппаратное представление целых чисел

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

Примечание

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

Целые числа могут быть знаковыми и беззнаковыми. Сначала рассмотрим формат более простых беззнаковых чисел. Если у нас есть N двоичных разрядов для хранения такого числа, то мы можем представить любое число от 0 до 2N-1. В Delphi беззнаковые целые представлены фундаментальными типами Byte (N=8, диапазон 0..255), Word (N=16, диапазон 0..65 535) и LongWord (N=32, диапазон 0..4 294 967 295).

Примечание

Фундаментальными называются те типы данных, разрядность которых не зависит от аппаратной платформы. Кроме них существуют еще общие (generic) типы, разрядность которых определяется разрядностью платформы. В Delphi это типы Integer (знаковое целое) и Cardinal (беззнаковое целое. В имеющейся реализации они имеют 32 разряда, но при переходе на 64-разрядные компиляторы следует ожидать что эти типы также станут 64-разрядными. В частности, в 16-разрядном Turbo Pascal тип Integer был 16-разрядным а типа Cardinal там не было).

Знаковые числа устроены несколько сложнее. Старший из N бит, отводящихся на такое число, служит для хранения знака (этот бит называется знаковым). Если этот бит равен нулю, число считается положительным, а оставшиеся N-1 разрядов используются для хранения числа так же, как в случае беззнакового целого (эти разряды мы будем называть беззнаковой частью). В этом случае знаковое число ничем не отличается от беззнакового. Отрицательные значения кодируются несколько сложнее. Когда все разряды (включая знаковый бит) равны единице, это соответствует значению -1. Рассмотрим это на примере однобайтного знакового числа. Числу -1 в данном случае соответствует комбинация 1 1111111 (знаковый бит мы будем отделять от остальных пробелом), т. е. беззнаковая часть числа содержит максимально возможное значение -127. Числу -2 соответствует комбинация 1 1111110, т. е. в беззнаковой части содержится 126. В общем случае отрицательное число, хранящееся в N разрядах равно X-2N-1, где X — положительное число, хранящееся в беззнаковой части. Таким образом, N разрядов позволяют представить знаковое целое в диапазоне -2N-1..2N-1-1, причем значению -2N-1 соответствует ситуация, когда все биты, кроме знакового равны нулю.

Такая на первый взгляд не очень удобная система позволяет унифицировать операции для знаковых и беззнаковых чисел. Для примера рассмотрим число 11111110. Если его рассматривать как беззнаковое, оно равно 254, если как знаковое, то -2. Вычитая из него, например, 3, мы должны получить 251 и -5 соответственно. Как нетрудно убедиться, в беззнаковой форме 251 — это 11111011. И число -5 в знаковой форме — это тоже 11111011, т. е. результирующее состояние разрядов зависит только от начального состояния этих разрядов и вычитаемого числа и не зависит от того, знаковое или беззнаковое число представляют эти разряды. И это утверждение справедливо не только для выбранных чисел, но и вообще для любых чисел, если ни они, ни результат операции не выходят за пределы допустимого диапазона. То же самое верно для операции сложения. Поэтому в системе команд процессора нет отдельно команд знакового и беззнакового сложения и вычитания — форматы чисел таковы, что можно обойтись одной парой команд (для умножения и деления это неверно, поэтому существуют отдельно команды знакового и беззнакового умножения и деления).

Ранее мы специально оговорили, что такое удобное правило действует только до тех пор, пока аргументы и результат остаются в рамках допустимого диапазона. Рассмотрим, что произойдет, если мы выйдем за его пределы. Пусть в беззнаковой записи нам нужно из 130 вычесть 10. 130 — это 10000010, после вычитания получим 01111000 (120). Но если попытаться интерпретировать эти двоичные значения как знаковые числа, получится, что из -126 мы вычитаем 10 и получаем 120. Такими парадоксальными результатами приходится расплачиваться за унификацию операций со знаковыми и беззнаковыми числами.

Рассмотрим другой пример: из пяти (в двоичном представлении 00000101) вычесть десять (00001010). Здесь уместно вспомнить вычитание в столбик, которое изучается в школе: если в разряде уменьшаемого стоит цифра, большая, чем в соответствующем разряде вычитаемого, то из старшего разряда уменьшаемого приходится занимать единицу. То же самое и здесь: чтобы вычесть большее число из меньшего, как бы занимается единица из несуществующего девятого разряда. Это можно представить так: из числа (1)00000101 вычитается (0)00001010 и получается (0)11111011 (несуществующий девятый разряд показан в скобках: после получения результата мы про него снова забываем). Если интерпретировать полученный результат как знаковое целое, то он равен -5, т. е. именно тому, что и должно быть. Но с точки зрения беззнаковой арифметики получается, что 5-10=251.

Приведенные примеры демонстрировали ситуации, когда результат укладывался в один из диапазонов (знаковый или беззнаковый), но не укладывался в другой. Рассмотрим, что будет, если результат не попадает ни в тот, ни в другой диапазон. Пусть нам нужно сложить 10000000 и 10000000. При таком сложении снова появляется несуществующий девятый разряд, но на этот раз из него единица не занимается, а в него переносится лишняя. Получается (1)00000000. Несуществующий разряд потом игнорируется. С точки зрения знаковой интерпретации получается, что 128 + 128 = 0. С точки зрения беззнаковой — что -128 + (-128) = 0, т. е. оба результата, как и можно было ожидать с самого начала, оказываются некорректными.

Знаковые целые представлены в Delphi типами ShortInt (N=8, диапазон -128..127), SmallInt (N=16, диапазон -32 768..32 767), LongInt (N=32, диапазон -2 147 483 648..2 147 483 647) и Int64 (N=64, диапазон -9 223 372 036 854 775 808..9 223 372 036 854 775 807).

Примечание

32-разрядные процессоры не могут выполнять операции непосредственно с 64-разрядными числами, поэтому компилятор генерирует код, который обрабатывает это число по частям. Сначала операция сложения или вычитания выполняется над младшими 32-мя разрядами а потом — над старшими 32-мя, причем, если в первой операции занималась единица из несуществующего (в рамках данной операции) 33-го разряда или единица переносилась в него, при второй операции эта единица учитывается.

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

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

Беззнаковое представление формата с фиксированной точкой

Стр 1 из 3Следующая ⇒

РЕФЕРАТ

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

ОГУ 10.05.01 5415 — Р

 

 

Руководитель

Канд. техн. наук, ст. пр.

________ Н.С. Надточий

«___»_________20___г.

.

 

Исполнитель

студент группы 15КБ(с)РЗПО

__________В.М. Сыроватко

«__»______20__г.

 

 

Оренбург 2015

 

Оглавление

1. Введение. 2

2. Форматы целых чисел. 3

2.1. Беззнаковое представление формата с фиксированной точкой. 3

2.1.1. Получение беззнакового кода целого числа. 4

2.1.2. Определение значения числа по его беззнаковому коду. 5

2.2. Знаковое представление формата с фиксированной точкой. 6

2.2.1. Способы получения дополнительных кодов целых чисел. 11

2.2.2. Получение знакового кода заданного числа. 13

 

Введение

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

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

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

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

Форматы целых чисел

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

1.

2.

2.

Беззнаковое представление формата с фиксированной точкой

1.

2.

3.

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

Пусть N — длина используемого поля в битах, тогда в нем может быть записано N-разрядное двоичное число, и, следовательно, могут быть представлены любые целые числа из диапазона [0;2ᴺ-1].

Для кодирования чисел в формате с фиксированной точкой используются поля длиной 1, 2 или 4 байта, поэтому N может быть равно 8, 16 или 32. В табл. 2.3 приведены обычно используемые в программировании названия соответствую­щих этим полям целых типов и диапазоны их возможных значений.

Таблица 2.3.Диапазоны представления беззнаковых целых чисел

Название Длина, байт Длина диапазона
byte, unsigned char 0…2⁸-1 0…255
word, unsigned int 0…2¹⁶-1 0…65 535
unsigned long 0…2³²-1 0…4 294 967 295

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

1.

2.

2.1.

©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.

Разница между подписанным и беззнаковым (с таблицей) – спросите любую разницу

Флаговые знаки используются категорией представления со знаком для обозначения отрицательных целых чисел. Категории данных без знака не используют такие знаки, поскольку они могут включать только ноль и все остальные положительные значения. Различие между «подписанным» и «неподписанным» важно для правильной работы компьютерного приложения.

Знаковые и беззнаковые

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

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

Сравнительная таблица между подписанными и без знаки 9
Параметры сравнения Подписано Nensigned
Значения включены Подписанные категории данных включают как положительные, так и отрицательные целые числа. Категории данных без знака включают только ноль и другие положительные целые числа. Они не могут включать отрицательные целые числа.
Величина Целые числа со знаком имеют меньшую величину, чем их аналоги без знака в том же диапазоне. Целые числа без знака имеют большую величину, чем их эквиваленты со знаком того же диапазона.
Знак флага Типы данных со знаком используют знак флага перед отрицательными числами, которые они представляют. Типы данных без знака не используют знак флага перед числами, так как они представляют только положительные целые числа.
Процесс идентификации Оставшийся бит используется подписанными контейнерами данных. Старший бит значения используется беззнаковыми контейнерами данных.
Диапазон в символах Целые числа со знаком находятся в диапазоне от -128 до 127 в символах. Целые числа без знака находятся в диапазоне от 0 до 255 символов.
Метод представления Для представления двоичных переменных со знаком можно использовать форму дополнения до 1, форму дополнения до 2 и форму знака-величины. Двоичные переменные без знака не имеют предшествующего знака или символа, поэтому для таких двоичных переменных существует только один метод представления.
Однозначный способ представления 1 из 3 возможных способов представления является однозначным. Единственный доступный метод представления — однозначный.

Что подписано?

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

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

Точно так же метод дополнения до 1 также является неоднозначным методом представления целых чисел со знаком. Метод дополнения до 2 — единственный однозначный метод, который можно использовать для представления этих целых чисел. Такие типы данных широко использовались при разработке языков программирования, таких как C и C+.

Что такое Беззнаковый?

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

Как и двоичные целые числа со знаком, числа без знака также используются в области программирования. Эти наборы данных используются в C++, C# и других языках программирования. В char двоичные целые числа без знака находятся в диапазоне от 0 до 255.

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

Основные различия между подписанными и беззнаковыми
  1. Основное различие между знаковыми и беззнаковыми типами данных заключается в том, что первый позволяет пользователю представлять как положительные, так и отрицательные числа, а последний используется для представления нуля и других положительных чисел.Отрицательные числа не могут быть представлены беззнаковыми типами данных. Их можно использовать исключительно для положительных целых чисел.
  2. Хотя аналогичные типы переменных со знаком и без знака имеют одинаковый диапазон, последний представляет большую величину числа, чем соответствующая переменная со знаком.
  3. Категоризация данных со знаком использует знак флага перед отрицательными числами, которые он представляет. Такой знак флага не используется категорией данных без знака, поскольку он представляет только положительные числа.
  4. Эти две категории также различаются по своим индивидуальным диапазонам в контексте char.Целые числа со знаком находятся в диапазоне от -128 до 127 в символах, а целые числа без знака — в диапазоне от 0 до 255 в символах.
  5. Еще одно различие между ними заключается в используемом методе идентификации. Ведущий бит данного значения используется как часть значения категорией данных без знака, чтобы определить, является ли число положительным или отрицательным. В качестве альтернативы подписанные типы данных используют оставшийся бит для такой же идентификации.
  6. Метод дополнения 1, метод дополнения 2 и метод формы знак-величина могут использоваться для представления переменных со знаком, поскольку некоторые двоичные переменные имеют отрицательный знак флага.В то время как двоичные переменные категории без знака представляют исключительно свои величины, поскольку все они являются положительными целыми числами.
  7. Двоичные целые числа со знаком имеют три возможных метода представления, но только один метод однозначного представления, в то время как двоичные числа без знака имеют один метод представления, который, в свою очередь, является однозначным.

Заключение

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

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

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

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

Ссылки
  1. https://ieeexplore.ieee.org/abstract/document/6606625/
  2. https://link.springer.com/chapter/10.1007/978-3-540-28628-3_8
  3. https://www.cs.umn.edu/sites/cs.umn.edu/files/tech_reports/14-006.pdf

Двоичные числа со знаком и без знака в цифровой электронике

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

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

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

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

Числа без знака

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

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

Пример: Представляет десятичное число 102 в двоичных числах без знака.

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

Десятичный Операция Результат Остаток
102 102/2 51 0
51 51/2 25 1
25 25/2 12 1
12 12/2 6 0
6 6/2 3 0
3 3/2 1 1
1 1/2 0 1

Таким образом, двоичное число (102) 10 равно (1100110) 2 , 7-битной величине десятичного числа 102.

Числа со знаком

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

Числа со знаком представлены тремя способами. Бит со знаком дает два возможных представления нуля (положительное (0) и отрицательное (1)), что является неоднозначным представлением.Третье представление — это представление с дополнением до 2, в котором невозможно двойное представление нуля, что делает его однозначным представлением. Существуют следующие типы представления двоичных чисел со знаком:

  1. Форма «знак-величина»
    В этой форме двоичное число имеет бит для символа знака. Если этот бит установлен в 1, число будет отрицательным, в противном случае число будет положительным, если оно установлено в 0. Помимо этого знакового бита, n-1 бит представляют величину числа.
  2. Дополнение до единиц
    Инвертируя каждый бит числа, мы можем получить дополнение до единиц. Отрицательные числа могут быть представлены в виде дополнения до 1. В этой форме двоичное число также имеет дополнительный бит для представления знака в виде формы знака-величины.
  3. Дополнение до 2
    Инвертируя каждый бит числа и добавляя плюс 1 к его младшему значащему биту, мы можем получить дополнение до 2 числа. Отрицательные числа также могут быть представлены в виде дополнения до 2.В этой форме двоичное число также имеет дополнительный бит для представления знака в виде формы знака-величины.

Представление чисел со знаком и без знака: дополнение 1 и 2

До сих пор мы видели и рассматривали только положительные числа, но представление отрицательных чисел не менее важно. Поскольку компьютеры могут читать только язык «0, 1», то есть двоичный язык. Двоичные числа выражаются обоими способами, то есть со знаком и без знака. Итак, возникает вопрос: в чем разница между номерами Unsigned и Signed ?

Вот и ответ; Беззнаковые числа содержат единственную величину числа i.n-1).\)

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

Узнайте разницу между ОЗУ и ПЗУ здесь.

Представление чисел со знаком и без знака

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

Например, в форме «знак-величина» 4-битное число 0111 представляет положительное число 7, а 1001 представляет отрицательное число (-7).{n-1}-1)\ \)

Узнайте разницу между аппаратным и программным обеспечением здесь.

Дополнительное числовое представление

В дополнительном представлении r r представляет основание. В зависимости от основания или основания дополнительное представление выглядит следующим образом.

  • Двоичная система счисления: дополнение до 1 и дополнение до 2.
  • Десятичная система счисления: дополнение до 9 и дополнение до 10.
  • Восьмеричная система счисления: дополнение до 7 и дополнение до 8.
  • Шестнадцатеричная система счисления: дополнение до F и дополнение до 16.

Чтобы определить (r-1) нам нужно вычесть данное число из максимального числа данного основания. Точно так же, чтобы определить дополнение r , сначала определите дополнение (r-1) данного числа и, наконец, добавьте 1 к LSB (наименее значащему биту). Вот несколько примеров для понимания.

Узнайте, какие здесь устройства ввода и вывода компьютера.

Определить дополнение до 1 и 2 двоичного числа 1011.

Согласно методике;

1111

– 1011

———–

0100 → Это дополнение до единицы.

Чтобы определить дополнение до 2 вышеуказанного числа:

+1 к младшему биту результата дополнения до 1.

0100

+ 0001

———–

0101→ Это дополнение до 2.

Определите девятки десятичного числа 6298.

Согласно методике;

9999

– 6298

———–

3701 → Это дополнение до 9.

Определить восьмеричные числа 6207.

По методике;

8888

– 6217

———–

2671→ Это дополнение до 8.

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

форма дополнения 1,

форма дополнения 2.

Разберем каждый из них на примерах.

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

Форма величины со знаком

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

В этом шаблоне двоичное число содержит бит для символа знака. Если этот бит установлен в 1, число будет отрицательным, иначе число будет означать положительное, если оно установлено в 0.Оставшиеся n-1 бит представляют величину числа.

Например; 0110 или 00110 или 000110 представляет +6, тогда как 100110 представляет -6.

Ознакомьтесь с типами компьютерных сетевых устройств здесь.

Форма дополнения до 1

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

\(\Диапазон\ из\ 1^{\простое}s\дополнение\представление\ равно\ от\-(2^{n-1}-1)\до\(2^{n-1}- 1).\)

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

Например:

\(\влево(0111\вправо)_2=\влево(+7\вправо)_{10}\ и\ \влево(1000\вправо)_2=\влево(-7\вправо) _{10},\ Здесь\ MSB\ обозначает\ знак\ числа\.\)

Узнайте о воротах И здесь.

Форма дополнения до 2

Инвертируя каждый бит заданного числа и добавляя 1 к его младшему значащему биту (LSB), мы можем получить дополнение числа до 2.{n-1}-1).\)

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

Например:

\(\влево(0111\вправо)_2=\влево(+7\вправо)_{10}\ и\ \влево(1001\вправо)_2=\влево(-7\вправо) _{10},\ Здесь\ MSB\ обозначает\ знак\ числа\.\)

Знайте все о Вратах операционной здесь.

Важные термины

  • В представлении с дополнением до 2 для увеличения количества бит нам нужно скопировать только бит MSB.
  • Большинство цифровых систем выполняют вычитание в представлении с дополнением до 1 или 2, что приводит к сокращению требуемого аппаратного обеспечения.
  • При вычитании дополнения до 2 сгенерированный перенос игнорируется. Однако, если старший бит конечного результата равен 0, то результат имеет истинную форму, а если старший бит конечного результата равен 1, то результат имеет дополнение до 2. Итак, чтобы получить величину, мы должны снова взять дополнение до 2.
  • Отрицательное число можно преобразовать в положительное, взяв дополнение до 2.
  • При вычитании дополнения до 1 созданный перенос добавляется к младшему биту результата. Однако, если старший бит конечного результата равен 0, то результат имеет истинную форму, а если старший бит конечного результата равен 1, то результат имеет дополнение до 1. Итак, чтобы получить величину, мы должны снова взять дополнение до 1.

Узнайте больше о цифровой электронике здесь.

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

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

В.1 Что такое целые числа со знаком?

Ответ 1 Целые числа со знаком — это числа со знаком «+» или «-». Если в представлении n бит, то из n бит 1-й бит будет использоваться для представления знака числа, а остальные (n – 1) биты будут представлять модульную часть числа.

Q.2 Как представлять числа в виде знака?

Ответ 2 Чтобы представить число в виде величины со знаком, мы просто используем крайний левый бит для выражения знака, где 0 означает положительное значение, а 1 — отрицательное, а остальные биты представляют величину.

Q.3 Что такое 32-разрядное целое число со знаком?

Ответ 3 Целое число со знаком — это 32-битное число, которое кодирует целое число в диапазоне от [-2147483648 до 2147483647].

Q.4 Как определить дополнение числа до 2?

Ответ 4 Переставив каждый бит числа, мы можем получить дополнение числа до 1. К полученному результату прибавьте 1 к младшему биту.

Q.5 Как определить дополнение числа до 1?

Ответ 5 Переставив каждый бит числа, мы можем получить дополнение числа до 1.

Создайте бесплатную учетную запись, чтобы продолжить чтение

  • Получайте мгновенные оповещения о вакансиях бесплатно!

  • Получите Daily GK и текущие события Capsule и PDF-файлы

  • Получите более 100 бесплатных пробных тестов и викторин


Подпишись бесплатно У вас уже есть аккаунт? Войти

Следующее сообщение

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

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

Мы предположили, что в системе счисления у нас есть столько битов, сколько необходимо для представления чисел. Но в компьютерах у нас есть фиксированное количество битов для представления значения.Обычно это 8-битный , 16-битный , 32-битный , 64-битный . Эти размеры обычно кратны 8 , поскольку системная память организована на основе 8-битных байтов. Когда для представления числа используется определенное количество битов. Это число определяет диапазон возможных значений, которые могут быть представлены. Например, существует 256 возможных комбинаций 8-бит , поэтому 8-битное число может представлять 256 различных числовых значений, а диапазон обычно считается от 0 до 255 (мы предоставили таблицу в конце этого раздела). руководство).Поэтому мы не можем представить числа больше 255, используя 8-битное число. Точно так же 16 бит допускает диапазон от 0 до 65535 .

Числа со знаком и без знака

До сих пор мы рассматривали только положительные значения двоичных чисел. Когда фиксированное двоичное число используется для хранения положительных значений, оно рассматривается как без знака . В этом случае диапазон положительных значений, которые могут быть представлены, составляет от 0 до 2 n -1 , где n — количество используемых битов.Также возможно представить знаков со знаком (как отрицательных, так и положительных) чисел в двоичном виде. В этом случае некоторая часть общего диапазона значений используется для представления положительных значений, а оставшаяся часть диапазона используется для представления отрицательных значений.

Существует несколько способов представления чисел со знаком в двоичном виде, но наиболее часто используемое представление называется методом дополнения до двух. Термин «дополнение до двух» несколько неоднозначен, поскольку используется двумя разными способами.Во-первых, как представление, дополнение до двух — это способ интерпретации и присвоения значения битовому шаблону, содержащемуся в двоичной величине с фиксированной точностью. Во-вторых, термин «дополнение до двух» также используется для обозначения операции, которая может быть выполнена над битами двоичной величины. В качестве операции дополнение числа до двух формируется путем инвертирования всех битов и добавления к нему 1. В двоичном числе, интерпретируемом с использованием представления дополнения до двух, старший бит числа указывает на знак. Если бит знака равен 0, число положительное , и , если бит знака равно 1, число отрицательное . Для положительных чисел остальные биты содержат истинную величину числа. Для отрицательных чисел младшие биты содержат величину числа. Важно отметить, что представление с дополнением до двух может применяться только к величинам с фиксированной точностью, то есть к величинам с заданным числом битов.

Используется метод представления с дополнением до 2, поскольку он снижает сложность аппаратного обеспечения в АЛУ (арифметико-логическом устройстве) ЦП компьютера.При использовании метода дополнения до 2 все арифметические операции могут выполняться одним и тем же оборудованием независимо от того, считаются ли числа беззнаковыми или знаковыми. Выполняемые битовые операции идентичны; разница возникает из-за интерпретации битов. Интерпретация значения будет отличаться в зависимости от того, считается ли значение беззнаковым или подписанным.

Дополнение до 2 для 8-битных чисел

В таблице ниже показана последовательность счета для 8-битного двоичного числа с использованием дополнения до 2:

Последовательность подсчета для 8-битного двоичного значения

В приведенной выше таблице мы считаем от 0 .При достижении 127 следующий двоичный шаблон в последовательности соответствует -128 . Значения от наибольшего положительного числа до наибольшего отрицательного числа, но после этого последовательность соответствует ожидаемой. Скажем, например, добавление 1 к -128 дает -127 . Когда счет достигает FF h (или максимально возможной величины без знака), счетчик возвращается к 0 . Скажем, например, добавление 1 к –1 дает 0 .Это все для подписанных и неподписанных чисел в компьютерном программировании. Если у вас есть какие-либо вопросы, то не стесняйтесь оставлять комментарии.

Глава 6. Целочисленное представление и арифметика

Глава 6. Целочисленное представление и арифметика

Целочисленное представление и арифметика


Целочисленное представление
  • Бит — Двоичная цифра
    • 1 байт = 8 бит
    • 1 слово = 2 байта
  • Целое число занимает два байта; могут быть подписаны или не подписаны.

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

  • Может представлять целые числа от 0 до 65 535
  • В двоичном формате это от
  • Внутреннее двоичное представление десятичного значения в виде 16 бит.

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

  • Необходимо зарезервировать один бит для знака.
  • Три направления:
    • Знак-величина
    • Дополнение 1
    • Дополнение 2


Знак-величина
  • Использует старший бит слова для представления знака.
    • 0 — Положительный
    • 1 — Отрицательный.
  • Остальная часть числа закодирована в части величины
 37 = 00000000 00100101
-37 = 10000000 00100101 
 6712 = 00011010 00111000
-6712 = 10011010 00111000 
  • Может представлять числа от -32 767 до 32 767.
  • Но два представления нуля:
 0 = 00000000 00000000
-0 = 10000000 00000000 
  • Арифметика может быть громоздкой.

  • Дополнение 1
    • Отрицательное число сохраняется как побитовое дополнение соответствующего положительного количество.
    • Крайний левый бит положительного числа равен 0. Отрицательного числа равен 1.
     196 = 00000000 11000100
    -196 = 11111111 00111011 
    • Может представлять числа от -32 767 до 32 767.
    • Арифметика проще, чем знак-величина.
    • Но по-прежнему есть два представления нуля:
     0 = 00000000 00000000
    -0 = 11111111 11111111 


    Дополнение 2
    • Современный метод
    • Положительное число, представленное так же, как и два других метода
    • Отрицательное число, полученное путем добавления до 1 положительного числа и добавление 1.
     6713 = 00011000 00011101
    1 Comp = 11100111 11100010
    2 комп = 11100111 11100011 
    • Слово integer может представлять числа от -32 768 до 32 767.
    • Целое число байтов может представлять числа от -128 до 127.
    • Одна версия нуля:
     00000000 00000000 


    Преобразование целого числа байтов в слово
    • Удлинитель знака
    • Копировать знаковый бит байта во все биты старшего байта слово.
     37 = 00100101 -> 00000000 00100101
    -37 = 11011011 -> 11111111 11011011 
  • хб
    • преобразует байт со знаком в AL в слово в AX

    Преобразование целого слова в байт

    • Удалить старший байт слова. Оставьте только младший байт.
    • Имеет смысл, только если исходное число может быть представлено байтом.


    Целочисленная арифметика (выражение 1 и сравнение 2)
    • Дополнение: Просто добавьте два двоичных представления.
    • Вычитание: Найдите минус одного числа, прибавьте ко второму.

    Дополнение к 1 комп.

    • Добавьте двоичные представления двух чисел.
    • Если есть перенос, добавьте его обратно с правой стороны.
     51 00110011
    + (-37) + 11011010
            ----------
            1 00001101
                   + 1
            ----------
        14 00001110 

    Дополнение к 2 комп.

    • Добавьте двоичные представления двух чисел.
    • Не обращайте внимания на перенос.
     51 00110011
    + (-37) + 11011011
             ----------
        14 1 00001110 

    Вычитание в двойках Comp


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


    Сложение, вычитание, приращение, уменьшение и отрицание
     add/sub reg/mem, reg/mem/constant 
    • Оба операнда должны быть одного размера
    • Максимум один операнд может быть из памяти
     инк/дек регистр/память 
    • операнды могут быть либо байтами, либо словами
     отрицательная регистр/память 
    • Инвертирует свой байтовый или словный операнд

    Умножение

     mov AX, банан
    имуль вишня
    мов Яблоко, AX 
  • DX содержит все знаковые биты (надеюсь)
  • Подразделение

     mov AX, банан
    cwd
    Идив Черри
    мов AX, Apple 
  • остаток в DX
  • Различные способы представления целого числа со знаком

    Целое число со знаком — это целое число, с которым связан положительный знак «+» или отрицательный знак «-».Поскольку компьютер понимает только двоичные данные, необходимо представлять эти целые числа со знаком в двоичной форме.

    В двоичном формате целое число со знаком может быть представлено тремя способами:

    1. Бит со знаком.
    2. Дополнение 1.
    3. Дополнение 2.

    Давайте посмотрим, почему дополнение до 2 считается лучшим методом.

    Бит со знаком Представление

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

    1.{3}-1  
    = -(7)   to+7

    Для 4-битного представления минимальное значение = -7 и максимальное значение = +7

    Бит со знаком Представление:

    5 Положительное число 6 s

    Вход Магнитуда Знак амплитудные 9002-3

    Десятичное представление
    0 0 0 0 +0
    0 0 0 1 +1 +1 +1
    0 0 1 0 + 2
    0 0 1 1 + 3
    0 1 0 0 +4 +4
    0
    1 1 0 1 +5
    0 1 1 0 +6
    0 1 1 1 +7

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

    Десятичное представление
    1 0 0 0 -0
    1 0 0 1 -1
    1 0 1 0 -2
    1 0 1 1 -3
    1 1 0 0 -4
    -4
    1 1 0 1 -5 -5
    1 1 1 0 -6
    1 1 1 1 -7

    Недостатки:

    1.{n-1}  бит.
    3. Числа стоят не в циклическом порядке, т.е. после наибольшего числа (в этом, например, +7) следующее число не является наименьшим числом (в этом, например, +0).
    4. Для отрицательных чисел расширение со знаком не работает.

    Пример:
    Расширение со знаком для +5

    Расширение со знаком для -5

    просто добавить 0 в MSB.
    6. Но если то же самое сделать в -ve представлении, мы не получим то же число. т. е. 10101 ≠ 11101.

    Представление с дополнением до единиц целого числа со знаком

    В представлении с дополнением до 1 используются следующие правила:
    2. Для -ve чисел мы можем следовать любому из двух подходов:   

    • Запишите +ve число в двоичном виде и возьмите его дополнение до 1.{п-1}-1.

      1’s Commentation Представительство:

      6 7 9003 9006 Отрицательные номера 9 0021 1

      0 0 0 0 +0
      0 0 0 1 +1 +1 +1
      0 0 1 0 + 2
      0 0 1 1 +
      0 1 0 0 +4
      0 1 0 1 0 1 +5
      0
      1 1 0 + 6
      0 1 1 1 +7
      знак

      номер
      1 0 0 0 -7
      0 0 1 -6 -6
      1 0 1 0 -5
      1 0 1 1 -4
      1 1 0 0 -3 -3
      1 1 0 1 -2
      1 1 1 0 -1
      1 1 1 1 -0
      -09

      Недостатки :

      1. Для 0 существует два представления: -0 и +0, чего быть не должно, поскольку 0 не является ни -ve, ни +ve.{n-1} бит.

      Преимущества перед битовым представлением со знаком:

      1. Числа идут в циклическом порядке, т.е. после наибольшего числа (в этом, например, +7) следующее число является наименьшим числом (в этом, например, — 7).
      2. Работает расширение для отрицательного числа со знаком.

      Пример: Расширение со знаком для +5

      Расширение со знаком для -5

      3. Как видно выше, для +ve, а также -ve представления, если 4 бита расширяются до 5 бит необходимо просто добавить 0/1 соответственно в MSB.{(n-1)-1}.

      Дополнение до 2 (4 бита)

      Достоинства:

      1. Нет неоднозначности в представлении 0.
      2. Числа идут после -e.7, т.е.
      3. Подпись Дополнительные работы.
      4. Диапазон чисел, которые можно представить с помощью дополнения до 2, очень велик.

      Благодаря всем вышеперечисленным достоинствам представления целого числа со знаком в дополнении до 2, двоичные числа представляются с использованием метода дополнения до 2 вместо бита со знаком и дополнения до 1.


      В двоичном числе самый левый бит называется . значащий бит (старший бит), а крайний правый бит называется младший бит (младший бит).
       старший бит
      |
      10010010
      |
      младший бит 
      Четыре системы представления отрицательных чисел:
      1. Магнитуда со знаком

      2. MSB дает знак числа (бит знака), 0 для положительного и 1 для отрицательного. Остальные биты содержат величину числа.
        например: 4=00000100, -4=10000100
      3. Один комплемент

      4. Старший бит также является знаком, но для инвертирования числа все биты дополняются (1 заменяется на 0 и 0 заменяется на 1)
        например: 4=00000100, -4=11111011

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

      5. Превышение n обозначение

      6. Добавьте n к номеру. n обычно равно 2 m-1 , где m — точность.Для 8-битного числа n равно 128.
        например:4=10000100, -4=011111100 (-4+128=124)
      7. Дополнение до двух

      8. То же, что и в дополнении к единице, но к отрицательным числам добавляется единица. им. Это для того, чтобы не было двух нулей (+0 и -0). MSB это еще знак.
        например:4=00000100, -4=11111100.
      Дополнение до двух является наиболее распространенным представлением отрицательных чисел. Потому что он обладает следующими свойствами:
      • Положительные числа совпадают с представлением без знака.
      • Беззнаковое сложение и вычитание работает для чисел со знаком.
      • Существует только одно представление нуля.
      Он используется машиной, выполняющей следующую программу.
       

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

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

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

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

      2. 10-11=255…..Неправильно.
        250+9=3………..Опять неправильно.
        Эти случаи вызывают Carry .
      3. Для чисел со знаком, пересекающих нижнюю часть диаграммы.

      4. 120+10=-126…..Неправильно.
        -100-29=127…..Опять не так.
        Эти случаи вызывают переполнение .
       

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

      В C существует 4 стандартных типа целых чисел:

      Целое число

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

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

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

      Поскольку крайние правые биты A и B могут принимать одно из двух значений, необходимо рассмотреть четыре случая: 0 + 0, 0 + 1, 1 + 0 и 1 + 1.

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

      Вычитание выполняется аналогичным образом с использованием других правил. Для вычитания перенос часто называют заимствованием.
      Эти операции выполняются ЦП (вам редко приходится выполнять операции над отдельными битами).

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

    Добавить комментарий

    Ваш адрес email не будет опубликован.