Что такое знаковый бит
Прямой код (представление числа)
Прямой код (представление числа)
Прямой код — способ представления двоичных чисел с фиксированной запятой в компьютерной арифметике. Главным образом используется для записи положительных чисел.
Содержание
Представление числа в прямом коде
При записи числа в прямом коде старший разряд является знаковым разрядом. Если его значение равно 0 — то число положительное, если 1 — то отрицательное. В остальных разрядах (которые называются цифровыми разрядами) записывается двоичное представление модуля числа.
Функция кодирования двоичных чисел (в том числе целых чисел и смешанных дробей) в прямом коде имеет вид:
где n — номер знакового разряда. В частности, при кодировании правильных двоичных дробей (то есть чисел − 1 ), n = 0 и функция кодирования принимает вид:
Величина числа A в прямом коде определяется по следующей формуле:
Как видно из последней формулы, знаковый разряд в прямом коде не имеет разрядного веса. При выполнении арифметических операций это приводит к необходимости отдельной обработки знакового разряда в прямом коде.
Примеры
Применение прямого кода
В информатике прямой код используется главным образом для записи неотрицательных целых чисел. Его легко получить из представления целого числа в любой другой системе счисления. Для этого достаточно перевести число в двоичную систему счисления, а затем заполнить нулями свободные слева разряды разрядной сетки машины.
Однако, у прямого кода есть два недостатка:
Выполнение арифметических операций над числами в прямом коде затруднено: например, даже для сложения чисел с разными знаками требуется кроме сумматора иметь специальный блок-«вычитатель», сложность реализации которого, такая же, как и обычного сумматора. Кроме того, при выполнении арифметических операций требуется особо обрабатывать значащий разряд, так как он не имеет веса. Также требуется обработка «отрицательного нуля». Таким образом, выполнение арифметических операций над числами в прямом коде потребует сложной архитектуры центрального процессора и в общем является неэффективным.
Гораздо более удобным для выполнения арифметических операций является дополнительный код.
Диапазон
Знаковый бит
Прямой — способ представления двоичных чисел с фиксированной запятой в компьютерной арифметике. Главным образом используется для записи неотрицательных чисел. В случае использования прямого а для чисел как положительных, так и отрицательных, то есть чисел, запись которых подразумевает возможность использования знака минус (знаковых чисел), хранимые цифровые разряды числа дополняются знаковым разрядом.
В англоязычной литературе именуется Sign and magnitude method.
Содержание
Представление числа со знаком в прямом е [ | ]
При записи числа в прямом е старший разряд (старший бит) объявляется знаковым разрядом (знаковым битом). Если знаковый бит равен 0, число положительное, иначе — отрицательное. В остальных разрядах (которые называются цифровыми разрядами) записывается двоичное представление модуля числа.
Функция ирования двоичных чисел (в том числе целых чисел и смешанных дробей) в прямом е имеет вид:
A = ( 1 − 2 a s i g n ) ∑ i = − k n a i p i <\displaystyle A=(1-2a_
Как видно из последней формулы, знаковый разряд в прямом е не имеет разрядного веса. При выполнении арифметических операций это приводит к необходимости отдельной обработки знакового разряда в прямом е.
Примеры [ | ]
Десятичное число | Двоичное число | прямой двоичный 8-разрядный | Примечание |
---|---|---|---|
0 | 0 | 0000 0000 | Положительный ноль |
-0 | -0 | 1000 0000 | Отрицательный ноль |
5 | 101 | 0000 0101 | |
10 | 1010 | 0000 1010 | |
-5 | -101 | 1000 0101 | |
-16 | -10000 | 1001 0000 | |
9/16 | 0.1001 | 0.100 1000 | |
-9/16 | -0.1001 | 1.100 1000 | |
105/128 | 0.1101001 | 0.110 1001 | |
-5/128 | -0.0000101 | 1.000 0101 |
Применение прямого а [ | ]
В информатике прямой используется главным образом для записи неотрицательных целых чисел. Его легко получить из представления целого числа в любой другой системе счисления. Для этого достаточно перевести число в двоичную систему счисления, а затем заполнить нулями свободные слева разряды разрядной сетки машины.
Однако при использовании для чисел со знаком у прямого а есть два недостатка.
Выполнение арифметических операций над числами в прямом е затруднено: например, даже для сложения чисел с разными знаками требуется кроме сумматора иметь специальный блок-«вычитатель», сложность реализации которого такая же, как и обычного сумматора. Кроме того, при выполнении арифметических операций требуется особо обрабатывать знаковый разряд, так как он не имеет веса. Также требуется обработка «отрицательного ноля». Таким образом, выполнение арифметических операций над знаковыми числами в прямом е потребует более сложной архитектуры центрального процессора и в общем является неэффективным.
Знаковый бит
Прямой код — способ представления двоичных чисел с фиксированной запятой в компьютерной арифметике. Главным образом используется для записи положительных чисел.
Содержание
Представление числа в прямом коде
При записи числа в прямом коде старший разряд является знаковым разрядом. Если его значение равно 0 — то число положительное, если 1 — то отрицательное. В остальных разрядах (которые называются цифровыми разрядами) записывается двоичное представление модуля числа.
Функция кодирования двоичных чисел (в том числе целых чисел и смешанных дробей) в прямом коде имеет вид:
где n — номер знакового разряда. В частности, при кодировании правильных двоичных дробей (то есть чисел − 1 ), n = 0 и функция кодирования принимает вид:
Величина числа A в прямом коде определяется по следующей формуле:
Как видно из последней формулы, знаковый разряд в прямом коде не имеет разрядного веса. При выполнении арифметических операций это приводит к необходимости отдельной обработки знакового разряда в прямом коде.
Примеры
Применение прямого кода
В информатике прямой код используется главным образом для записи неотрицательных целых чисел. Его легко получить из представления целого числа в любой другой системе счисления. Для этого достаточно перевести число в двоичную систему счисления, а затем заполнить нулями свободные слева разряды разрядной сетки машины.
Однако, у прямого кода есть два недостатка:
Выполнение арифметических операций над числами в прямом коде затруднено: например, даже для сложения чисел с разными знаками требуется кроме сумматора иметь специальный блок-«вычитатель», эффективно реализовать который, скорее всего, не представляется возможным. Кроме того, при выполнении арифметических операций требуется особо обрабатывать значащий разряд, так как он не имеет веса. Также требуется обработка «отрицательного нуля». Таким образом, выполнение арифметических операций над числами в прямом коде потребует сложной архитектуры центрального процессора и в общем является неэффективным.
Гораздо более удобным для выполнения арифметических операций является дополнительный код.
Диапазон
См. также
Полезное
Смотреть что такое «Знаковый бит» в других словарях:
знаковый бит — Бит, который показывает знак числа: положительное число (нуль) или отрицательное число (единица) (МСЭ Т T.800). [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN sign bit … Справочник технического переводчика
A-закон — А закон алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных. Реализации для 16 битных знаковых целых Принцип кодирования схож с кодированием чисел с плавающей запятой. Каждый семпл кодируется в 8 битное поле.… … Википедия
А-закон — А закон алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных. Содержание 1 Описание реализации алгоритма для 16 битных знаковых целых 1.1 Шаг 1 1.2 Шаг 2 … Википедия
Битовое поле — Битовое поле в программировании число, занимающее некоторый набор битов, напрямую не адресуемый процессором. Например: при 8 битном байте первые два поля протокола IP версия и IHL будут битовыми полями. На машинах с 32 битным… … Википедия
Битовые поля — Битовое поле в программировании число, занимающее некоторый набор битов, напрямую не адресуемый процессором. Например: при 8 битном байте первые два поля протокола Обращение к битовым полям требует дополнительных команд процессора для… … Википедия
Запятая плавающая — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… … Википедия
Машинный эпсилон — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… … Википедия
Плавающая запятая — форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто используемое представление… … Википедия
Плавающая точка — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… … Википедия
Числа с плавающей точкой — Плавающая запятая форма представления дробных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Наиболее часто… … Википедия
Прямой, обратный и дополнительный коды двоичного числа
Прямой код двоичного числа
Обратный код двоичного числа
Дополнительный код двоичного числа
Мы знаем, что десятичное число можно представить в двоичном виде. К примеру, десятичное число 100 в двоичном виде будет равно 1100100, или в восьмибитном представлении 0110 0100. А как представить отрицательное десятичное число в двоичном виде и произвести с ним арифметические операции? Для этого и предназначены разные способы представления чисел в двоичном коде.
Сразу отмечу, что положительные числа в двоичном коде вне зависимости от способа представления (прямой, обратный или дополнительный коды) имеют одинаковый вид.
Прямой код
Обратный код
Для неотрицательных чисел обратный код двоичного числа имеет тот же вид, что и запись неотрицательного числа в прямом коде.
Для отрицательных чисел обратный код получается из неотрицательного числа в прямом коде, путем инвертирования всех битов (1 меняем на 0, а 0 меняем на 1).
Для преобразования отрицательного числа записанное в обратном коде в положительное достаточного его проинвертировать.
Арифметические операции с отрицательными числами в обратном коде:
Дополнительный код
В дополнительном коде (как и в прямом и обратном) старший разряд отводится для представления знака числа (знаковый бит).
Арифметические операции с отрицательными числами в дополнительном коде
Вывод:
1. Для арифметических операций сложения и вычитания положительных двоичных чисел наиболее подходит применение прямого кода
2. Для арифметических операций сложения и вычитания отрицательных двоичных чисел наиболее подходит применение дополнительного кода
(36 голосов, оценка: 4,67 из 5)
Представление целых чисел: прямой код, код со сдвигом, дополнительный код
Выбор способа хранения целых чисел в памяти компьютера — не такая тривиальная задача, как могло бы показаться на первый взгляд. Желательно, чтобы этот способ:
Рассмотрим разные методы представления.
Содержание
Прямой код [ править ]
Достоинства представления чисел с помощью прямого кода [ править ]
Недостатки представления чисел с помощью прямого кода [ править ]
Из-за весьма существенных недостатков прямой код используется очень редко.
Код со сдвигом [ править ]
По сути, при таком кодировании:
Достоинства представления чисел с помощью кода со сдвигом [ править ]
Недостатки представления чисел с помощью кода со сдвигом [ править ]
Из-за необходимости усложнять арифметические операции код со сдвигом для представления целых чисел используется не часто, но зато применяется для хранения порядка вещественного числа.
Дополнительный код (дополнение до единицы) [ править ]
В качестве альтернативы представления целых чисел может использоваться код с дополнением до единицы (англ. Ones’ complement).
Алгоритм получения кода числа:
Достоинства представления чисел с помощью кода с дополнением до единицы [ править ]
Недостатки представления чисел с помощью кода с дополнением до единицы [ править ]
Дополнительный код (дополнение до двух) [ править ]
Чаще всего для представления отрицательных чисел используется код с дополнением до двух (англ. Two’s complement).
Алгоритм получения дополнительного кода числа:
Длинная арифметика для чисел, представленных с помощью кода с дополнением до двух [ править ]
Достоинства представления чисел с помощью кода с дополнением до двух [ править ]
Недостатки представления чисел с помощью кода с дополнением до двух [ править ]
Несмотря на недостатки, дополнение до двух в современных вычислительных системах используется чаще всего.