Как найти обратный код десятичного числа

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

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

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

PLANETCALC, Прямой, дополнительный и обратный код

Прямой, дополнительный и обратный код

Представление положительного числа

Итак, теория

Прямой код числа это представление беззнакового двоичного числа. Если речь идет о машинной арифметике, то как правило на представление числа отводится определенное ограниченное число разрядов. Диапазон чисел, который можно представить числом разрядов n равен 2^n

Обратный код числа, или дополнение до единицы (one’s complement) это инвертирование прямого кода (поэтому его еще называют инверсный код). То есть все нули заменяются на единицы, а единицы на нули.

Дополнительный код числа, или дополнение до двойки (two’s complement) это обратный код, к младшему значащему разряду которого прибавлена единица

А теперь «зачем, зачем это все?» ©

А это все для удобной работы со знаками. Поскольку я все люблю понимать на примерах, рассказывать я тоже буду на примерах. Итак, предположим, что у нас 4 разряда для работы с двоичными числами. Представить таким образом можно 16 чисел — 0, 1, … 15
00 — 0000

15 — 1111

Но если нет знака, убогая получается арифметика. Нужно вводить знак. Чтобы никого не обидеть, половину диапазона отдадим положительным числам (8 чисел), половину — отрицательным (тоже 8 чисел). Ноль, что отличает машинную арифметику от обычной, мы отнесем в положительные числа (в обычной арифметике у нуля нет знака, если не ошибаюсь). Итого, в положительные числа попадают 0,…,7, а в отрицательные -1, …, -8.

Для различия положительных и отрицательных чисел выделяют старший разряд числа, который называется знаковым (sign bit)
0 в этом разряде говорит нам о том, что это положительное число, а 1 — отрицательное.

С положительными числами все вроде бы понятно, для их представления можно использовать прямой код
0 — 0000
1 — 0001
7 — 0111

А как представить отрицательные числа?

Вот для их представления как раз и используется дополнительный код.
То есть, -7 в дополнительном коде получается так
прямой код 7 = 0111
обратный код 7 = 1000
дополнительный код 7 = 1001

Обратим внимание на то, что прямой код 1001 представляет число 9, которое отстоит от числа -7 ровно на 16, или 2^4.
Или, что тоже самое, дополнительный код числа «дополняет» прямой код до 2^n, т.е. 7+9=16

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

Пара примеров
7-3=4
0111 прямой код 7
1101 дополнительный код 3
0100 результат сложения 4

-1+7=6
1111 дополнительный код 1
0111 прямой код 7
0110 результат сложения 6

Что касается переполнения — оно определяется по двум последним переносам, включая перенос за старший разряд. При этом если переносы 11 или 00, то переполнения не было, а если 01 или 10, то было. При этом, если переполнения не было, то выход за разряды можно игнорировать.

Примеры где показаны переносы и пятый разряд

7+1=8

00111 прямой код 7
00001 прямой код 1
01110 переносы
01000 результат 8 — переполнение

Два последних переноса 01 — переполнение

-7+7=0
00111 прямой код 7
01001 дополнительный код 7
11110 переносы
10000 результат 16 — но пятый разряд можно игнорировать, реальный результат 0

Два последних переноса 11 з перенос в пятый разряд можно отбросить, оставшийся результат, ноль, арифметически корректен.
Опять же проверять на переполнение можно простейшей операцией XOR двух бит переносов.

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

P.S. Ну а обратный код дополняет число до 2^n-1, или до всех 1, потому и называется дополнением до 1. Им тоже можно представлять отрицательные числа, и реализовать вычитание и сложение схемой сложения, только сложение там хитрее — с циклическим переносом, ну и представить можно меньше на одно число, так как все единицы уже заняты — это обратный код нуля, эдакий «минус нуль», то есть диапазон получается, если брать наш пример от -7 до 7. Не так удобно, одним словом.

Тема 3: Представление
целых чисел в компьютере
.

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

Любая информация (числа,
текстовая, графическая и т. д.) представляется
в ЭВМ в виде двоичных кодов фиксированной
или переменной длины. Отдельные элементы
двоичного кода, имеющие значение 0 или
1, называют битами.
Двоичный код состоящий из 8 разрядов
носит название байта.

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

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

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

В  однобайтовом  формате
 числа принимают  значения  от 
000000002  
до   111111112.

В двубайтовом формате —
от  00000000 000000002  
до   11111111 111111112.

В четырехбайтовом —  от
00000000 00000000 00000000 000000002
до 11111111 1111111 11111111 111111112

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

Формат
числа в байтах 

Диапазон 

Запись с
порядком

Обычная
запись

1

0 … 28–1

0 … 255

2

0 … 216–1

0 … 65535

4

0 … 232–1

0…429967295

Например,
в однобайтовом формате число 62=1111102
имеет вид:

В двубайтовом формате число 1402=101011110102
имеет вид:

Пример 1. Для хранения целого числа
без знака используется один

байт. Записать представление числа 19 в
компьютере.

1 шаг: Переведем число 19 из десятичной
системы счисления в двоичную.

2 шаг:
Так как для представления числа в
компьютере выделен 1 байт, то код числа
должен содержать 8 знаков (8 бит). Поэтому
впереди числа дописываем 3 незначащих
нуля.

0

0

0

1

0

0

1

1

Задания.

1. Запишите числа в беззнаковом коде
(формат 1 байт):

 а) 31;      б)
163;    в) 65;    г) 128. 

2. Найдите десятичные
представления чисел, записанных в
беззнаковом коде:

 а) 0 1011000;     
б) 1 0011011;     в) 0 1101001;     
г) 1 1000000. 

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

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

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

Формат
числа в байтах

Диапазон

Запись с
порядком

Обычная
запись

1

–27 …
27–1 

–128 … 127 

2

–215 …
215–1 

–32768 …
32767

4

–231 …
231–1 

–2147483648 …
2147483647

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

Например,
в однобайтовом формате число 46=1011102
имеет вид:

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

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

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

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

Например, в однобайтовом формате числа
27 и -27 имеют вид:

Число

Прямой
код

Обратный
код

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

27

00011011

00011011

00011011

-27

10011011

11100100

11100101

Пример 1. Найти прямой, обратный и
дополнительный код представления числа
13 в однобайтном формате.

1 шаг: Переведем число 13 из десятичной
системы счисления в двоичную.

2 шаг: Для представления
числа в компьютере выделен 1 байт. Старший
бит занимает знак числа – 0. Сам код
числа должен занимать 7 бит. Таким образом
прямой код числа 13

0

0

0

0

1

1

0

1

Так как для положительных чисел прямой,
обратный и дополнительный код совпадает,
то ответ 00001101.

Пример 2. Найти прямой, обратный и
дополнительный код представления числа
-23 в однобайтовом формате.

1 шаг: Переведем число -23 из десятичной
системы счисления в двоичную. Получим

-2310=-101112

2 шаг: Прямой код числа в однобайтовом
формате, учитывая, что старший бит
занимает знак числа -1, имеет вид

1

0

0

1

0

1

1

1

3 шаг: Найдем обратный код числа -23,
заменив все цифры числа на
противоположные (1 на 0, 0 на 1), а в знаковый
разряд заносится единица. Имеем,

1

1

1

0

1

0

0

0

4 шаг: Найдем дополнительный код
числа -23, добавив 1 к младшему
разряду обратного кода.

1

1

1

0

1

0

0

1

Ответ:
прямой код – 10010111; обратный – 11101000;
дополнительный – 11101001.

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

Число

Прямой
код

Обратный
код

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

0

00000000

00000000

00000000

1

00000001

00000001

00000001

-1

10000001

11111110

11111111

5

00000101

00000101

00000101

-5

10000101

11111010

11111011

8

00001000

00001000

00001000

-8

10001000

11110111

11111000

120

01111000

01111000

01111000

-120

11111000

10000111

10001000

127

01111111

01111111

01111111

-127

11111111

10000000

10000001

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

Распространёнными
формами представления чисел со знаками
является их представление в прямом,
обратном и дополнительном коде.
Прямой
код числа образуется кодированием знака
числа нулём, если число положительно и
единицей, если число отрицательно (для
двоичной системы)
Для общего случая
(q — 1) — если число отрицательно, и 0 — если
число положительно. q — основание системы
счисления.
Код знака записывается
перед старшей цифрой числа и отделяется
от неё точкой:
-1.01 = 1.101
Прямой, обратный
и дополнительный коды положительных
чисел совпадают между собой.
Обратный
код отрицательного числа образуется
из прямого кода, заменой его цифр на их
дополнения до величины q-1. Код знака
сохраняется без изменения.
Пример
:
+12310 =
0.123пр =
0.123об.
-12310 =
9.123пр =
9.876об
+3А7С0016 =
0.3А7С00пр =
0.3А7С00об.
-3А7С0016 =
F.3А7С00пр=
F.C583FFоб.
-1012 =
1.101пр =
1.010об.
Замена
цифр их дополнениями для двоичной
системы совпадает с операцией инверсии,
то есть нули заменяются единицами,
единицы — нулями. Знак принимает значение,
равное единице.
Дополнительный код
отрицательного числа образуется из
обратного увеличением на 1 его младшего
разряда. При этом перенос из знакового
разряда игнорируется.
Пример:
+23610 =
0.236пр.=
0.236об.=
0.236доп.
-23610 =
9.236пр.=
9.763об.=
9.764доп.
-1012=
1.101пр.=
1.010об=
1.011доп.
-3А7С16=
F.3А7Спр=
F.C583об.=
F.C584доп.
Правила
перевода из прямого кода в обратный и
из обратного в прямой, а также из прямого
в дополнительный и из дополнительного
в прямой совпадают между собой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Инфоурок


Информатика

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

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

Скачать материал

Представление чисел в компьютере.Прямой, обратный и дополнительный кодФИО: В...

Скачать материал

  • Сейчас обучается 358 человек из 65 регионов

  • Сейчас обучается 84 человека из 36 регионов

  • Сейчас обучается 39 человек из 28 регионов

Описание презентации по отдельным слайдам:

  • Представление чисел в компьютере.Прямой, обратный и дополнительный кодФИО: В...

    1 слайд

    Представление чисел в компьютере.
    Прямой, обратный и дополнительный код
    ФИО: Воронова Екатерина Николаевна
    Место работы: МАОУ «Лицей №1″г. Стерлитамак
    Должность: учитель информатики

  • ячейка из n разрядовn - 1  разряд0 разрядЯчейка – это часть памяти компьютера...

    2 слайд

    ячейка из n разрядов
    n — 1 разряд
    0 разряд
    Ячейка – это часть памяти компьютера, вмещающая
    в себя информацию, доступную для обработки
    отдельной командой процессора.

  • ячейка из n разрядовn - 1  разряд0 разрядСодержимое ячейки памяти называется...

    3 слайд

    ячейка из n разрядов
    n — 1 разряд
    0 разряд
    Содержимое ячейки памяти называется машинным словом.
    Ячейка памяти разделяется на разряды, в каждом из которых хранится разряд числа.

  • Бит (от английского binary digit — двоичная цифра) - минимальная единица изме...

    4 слайд

    Бит (от английского binary digit — двоичная цифра) — минимальная единица измерения информации. Каждый бит может принимать значение 0 или 1.
    Битом также называют разряд ячейки памяти ЭВМ.
    8 бит = 1 байт
    Байт (от английского byte – слог) – часть машинного слова, состоящая из 8 бит, обрабатываемая в ЭВМ как одно целое.
    7 разряд
    0 разряд
    ячейка из 8 разрядов

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

    5 слайд

    Знаковый разряд
    Для представления чисел в памяти компьютера используются два формата: формат с фиксированной точкой и формат с плавающей точкой. В формате с фиксированной точкой представляются только целые числа, в формате с плавающей точкой – вещественные числа (целые и дробные).
    Целые числа могут представляться в компьютере со знаком или без знака.
    Целые числа без знака обычно занимают в памяти один или два байта.
    Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «плюс» кодируется нулем, а «минус» — единицей.

  • В ЭВМ в целях упрощения выполнения арифметических операций применяютспециаль...

    6 слайд

    В ЭВМ в целях упрощения выполнения арифметических операций применяют
    специальные коды для представления целых чисел
    Прямой код числа
    Обратный код числа
    Дополнительный код числа

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

    7 слайд

    Прямой код – это представление числа в двоичной системе счисления, при этом первый разряд отводится под знак числа. Если число положительное, то в первом разряде находится 0, если число отрицательное, в первом разряде указывается 1.
    Положительное десятичное число 24 представляется
    Знак числа «+»

  • Обратный код для положительного числа в двоичной системе счисления совпадает...

    8 слайд

    Обратный код для положительного числа в двоичной системе счисления совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
    Отрицательное десятичное число -24 представляется
    Знак числа «-»

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

    9 слайд

    Дополнительный код используют в основном для представления в компьютере отрицательных чисел.
    Алгоритм получения дополнительного кода для отрицательного числа
    1. Найти прямой код числа ( перевести число в двоичную систему счисления число без знака)
    2. Получить обратный код. Поменять каждый ноль на единицу, а единицу на ноль ( инвертировать число)
    3. К обратному коду прибавить 1

  • Найдем дополнительный код десятичного числа - 471. Найдем двоичную запись чис...

    10 слайд

    Найдем дополнительный код десятичного числа — 47
    1. Найдем двоичную запись числа 47 ( прямой код)
    2. Инвертируем это число ( обратный код)
    3. Прибавим 1 к обратному коду и получим запись этого числа в оперативной памяти

  • Задание 1. Записать внутреннее представление следующих десятичных чисел, испо...

    11 слайд

    Задание 1. Записать внутреннее представление следующих десятичных чисел, используя 8 – разрядную ячейку:
    6410
    — 12010

  • Задание 2. Как запишутся в оперативной памяти компьютера следующие десятичные...

    12 слайд

    Задание 2. Как запишутся в оперативной памяти компьютера следующие десятичные числа в 16-ти разрядной сетке
    5710
    20010
    -11710

  • -20010-11710Задание 2. Как запишутся в оперативной памяти компьютера следующи...

    13 слайд

    -20010
    -11710
    Задание 2. Как запишутся в оперативной памяти компьютера следующие десятичные числа в 16-ти разрядной сетке

  • Домашняя работаЗадание 1. Получить внутреннее представление целого числа 1231...

    14 слайд

    Домашняя работа
    Задание 1. Получить внутреннее представление целого числа 12310 в 8-разрядной ячейке памяти компьютера.

    Задание 2. Получить внутреннее представление целого числа
    — 12310 в 8-разрядной ячейке памяти компьютера.

     Задание 3. Получить внутреннее представление целого числа — 1710 в 16 – ти разрядной ячейке памяти компьютера.

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 263 288 материалов в базе

  • Выберите категорию:

  • Выберите учебник и тему

  • Выберите класс:

  • Тип материала:

    • Все материалы

    • Статьи

    • Научные работы

    • Видеоуроки

    • Презентации

    • Конспекты

    • Тесты

    • Рабочие программы

    • Другие методич. материалы

Найти материалы

Материал подходит для УМК

  • «Информатика (базовый уровень)», Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.

Другие материалы

  • 18.09.2022
  • 75
  • 4
  • 18.09.2022
  • 1944
  • 347

«Информатика», Босова Л.Л., Босова А.Ю.

  • 18.09.2022
  • 1670
  • 56
  • 18.09.2022
  • 1984
  • 53
  • 18.09.2022
  • 189
  • 7

«Информатика», Босова Л.Л., Босова А.Ю.

  • 18.09.2022
  • 83
  • 2
  • 18.09.2022
  • 374
  • 6

Вам будут интересны эти курсы:

  • Курс повышения квалификации «Информационные технологии в деятельности учителя физики»

  • Курс повышения квалификации «Внедрение системы компьютерной математики в процесс обучения математике в старших классах в рамках реализации ФГОС»

  • Курс повышения квалификации «Облачные технологии в образовании»

  • Курс повышения квалификации «Сетевые и дистанционные (электронные) формы обучения в условиях реализации ФГОС по ТОП-50»

  • Курс профессиональной переподготовки «Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации»

  • Курс повышения квалификации «Использование компьютерных технологий в процессе обучения в условиях реализации ФГОС»

  • Курс повышения квалификации «Введение в программирование на языке С (СИ)»

  • Курс профессиональной переподготовки «Математика и информатика: теория и методика преподавания в образовательной организации»

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

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

    Удалить материал

  • Айбазова Ася Васильевна

    • На сайте: 1 год и 8 месяцев
    • Подписчики: 0
    • Всего просмотров: 392
    • Всего материалов:

      1

  • Файлы

Файлы

Рабочий лист подходит для учеников 7 класса, работающих по учебнику «Информатика. ФГОС», автор Л….

Прямой, дополнительный и обратный коды

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

Итак, давайте же разберем, что означают вышеописанные умные слова.

Прямой код — это некое вывод беззнакового двоичного числа.

Обратный код — это преобразование прямого кода (или же просто инверсный). Это простая замена нолей на единицы, и наоборот.

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

Обратный и дополнительный код числа онлайн

Число или выражение

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

Система счисления

Прямой код
Обратный код
Дополнительный код

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

Не  будем загружать Вас информацией что это за кода. Такого материала валом на других ресурсах. 

Что делаете Вы?

Вводите целое число ( отрицательное в том числе) или выражение.

Указываете разрядность ячейки памяти

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

Что делает бот?

Высчитывает выражение. Если выражение дробное, то отбрасывает дробную часть

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

Удобное и быстрое решение для ускорения работы.

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