Пользователь Евгений попросил нас сделать перевод из прямого в дополнительный или обратный коды.
Далее идет калькулятор, который переводит введенное положительное или отрицательное целое число в двоичный код, а также выводит обратный код этого числа и его дополнительный код. Под калькулятором, как водится, немного теории.
Обновление: Из комментариев становится ясно, что люди не вполне понимают, что делает этот калькулятор. Точнее, что делал — применял алгоритм вычисления дополнительного кода к любому числу. Люди хотят, чтобы он им просто показывал дополнительный код числа. Ну хорошо — теперь при вводе положительного числа калькулятор показывает представление числа в двоичной форме, ибо для него нет обратного и дополнительного кода, а при вводе отрицательного показывает дополнительный и обратный код.
Прямой, дополнительный и обратный код
Представление положительного числа
Итак, теория
Прямой код числа это представление беззнакового двоичного числа. Если речь идет о машинной арифметике, то как правило на представление числа отводится определенное ограниченное число разрядов. Диапазон чисел, который можно представить числом разрядов 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, или .
Или, что тоже самое, дополнительный код числа «дополняет» прямой код до , т.е. 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. Ну а обратный код дополняет число до , или до всех 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 … |
–128 … 127 |
2 |
–215 … |
–32768 … |
4 |
–231 … |
–2147483648 … |
Самый левый (старший бит)
разряд определяет знак числа.
Если
он равен 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″г. Стерлитамак
Должность: учитель информатики -
2 слайд
ячейка из n разрядов
n — 1 разряд
0 разряд
Ячейка – это часть памяти компьютера, вмещающая
в себя информацию, доступную для обработки
отдельной командой процессора. -
3 слайд
ячейка из n разрядов
n — 1 разряд
0 разряд
Содержимое ячейки памяти называется машинным словом.
Ячейка памяти разделяется на разряды, в каждом из которых хранится разряд числа. -
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 -
10 слайд
Найдем дополнительный код десятичного числа — 47
1. Найдем двоичную запись числа 47 ( прямой код)
2. Инвертируем это число ( обратный код)
3. Прибавим 1 к обратному коду и получим запись этого числа в оперативной памяти -
11 слайд
Задание 1. Записать внутреннее представление следующих десятичных чисел, используя 8 – разрядную ячейку:
6410
— 12010 -
12 слайд
Задание 2. Как запишутся в оперативной памяти компьютера следующие десятичные числа в 16-ти разрядной сетке
5710
20010
-11710 -
13 слайд
-20010
-11710
Задание 2. Как запишутся в оперативной памяти компьютера следующие десятичные числа в 16-ти разрядной сетке -
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 класса, работающих по учебнику «Информатика. ФГОС», автор Л….
Прямой, дополнительный и обратный коды
Следующий калькулятор разработан для перевода введенного вами целого числового значения в двоичный вид кода, также калькулятор показывает обратный и дополнительный код того самого числа.
Итак, давайте же разберем, что означают вышеописанные умные слова.
Прямой код — это некое вывод беззнакового двоичного числа.
Обратный код — это преобразование прямого кода (или же просто инверсный). Это простая замена нолей на единицы, и наоборот.
Дополнительный код — часто еще говорят дополнение до двойки — это тоже обратный код, плюс прибавляется единица к самому меньшему значащему разряду.
Обратный и дополнительный код числа онлайн
Число или выражение |
Разрядность ячейки памяти |
Система счисления |
Прямой код |
Обратный код |
Дополнительный код |
Выделим в отдельный материал расчет обратного и дополнительного кода отрицательных чисел. Изначально был создан калькулятор разных систем счисления, но несмотря на его универсальность, посетители сайта редко его находили.
Не будем загружать Вас информацией что это за кода. Такого материала валом на других ресурсах.
Что делаете Вы?
Вводите целое число ( отрицательное в том числе) или выражение.
Указываете разрядность ячейки памяти
Указываете в какой системе счисления необходимо получить результат.
Что делает бот?
Высчитывает выражение. Если выражение дробное, то отбрасывает дробную часть
Выдает дополнительный и обратный код в той системе счсиления которая была задана.
Удобное и быстрое решение для ускорения работы.