Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

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

В англоязычной литературе именуется Sign and magnitude method.

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

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

Функция кодирования двоичных чисел (в том числе целых чисел и смешанных дробей) в прямом коде имеет вид:

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

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

где:

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

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

Примеры

Десятичное число Двоичное число Код прямой двоичный 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 (например, 00000000 и 10000000 в восьмиразрядном представлении). Второе представление называется «отрицательный ноль»
  • Использование прямого кода для представления отрицательных чисел в памяти компьютера предполагает или выполнение арифметических операций центральным процессором в прямом коде, или перевод чисел в другое представление (например, в дополнительный код) перед выполнением операций и перевод результатов обратно в прямой код (что неэффективно).

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

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

Диапазон

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

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

См. также

Примечания

Литература

Эта страница в последний раз была отредактирована 26 мая 2021 в 02:41.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).