Практическая работа №2
Тема: Определение прямого, обратного и дополнительного кода числа
Цель: - закрепление знаний о способах определения прямого, обратного и дополнительного кода числа;
- формирование практических навыков по нахождению прямого обратного и дополнительного кода числа;
- закрепление алгоритма определения числа по его прямому, обратному и дополнительному коду.
Вид работы: индивидуальный
Время выполнения: 2 часа.
Теоретические сведения
Для представления информации в памяти ЭВМ (как числовой, так и нечисловой) используется двоичный способ кодирования.
Элементарная ячейка памяти ЭВМ имеет длину 8 бит (байт). Каждый байт имеет свой номер (его называют адресом). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машинным словом. Длинные машинные слова зависит от разрядности процессора и может быть равной 16, 32 битам и т. д.
Для кодирования символов достаточно одного байта. При этом можно представить 256 символов (с десятичными кодами от 0 до 255). Набор символов персональных ЭВМ IBM PC чаще всего является расширением кода ASCII (American Standart Code for Information Interchange – стандартный американский код для обмена информацией).
Прямой код (представление в виде абсолютной величины со знаком) двоичного числа – это само двоичное число, в котором все цифры, изображающие его значение, записываются как в математической записи, а знак числа записывается двоичной цифрой.
Обратный код положительного числа совпадает с прямым, а при записи отрицательного числа все его цифры, кроме цифры, изображающей знак числа, заменяются на противоположные (0 заменяется на 1, а 1 – на 0).
Дополнительный код (представление в виде дополнения до двойки) положительного числа совпадает с прямым, а код отрицательного числа образуется как результат увеличения на 1 его обратного кода.
Ход работы
Представление числа в привычной форме «знак» - «величина», при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно.
Положительные числа в ЭВМ всегда представляются с помощью прямого кода. Прямой код числа полностью совпадает с записью самого числа в ячейке машины. Вообще, положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде.
Пример 1.
Прямой код отрицательного числа отличается от прямого кода соответствующего положительного числа лишь содержимым знакового разряда. Но отрицательные целые числа не представляются в ЭВМ с помощью прямого кода, для их представления используется так называемый дополнительный код.
Прямой код двоичного числа (а это либо мантисса, либо порядок) образуется по такому алгоритму:
1. Определить данное двоичное число - оно либо целое (порядок), либо правильная дробь (мантисса).
2. Если это дробь, то цифры после запятой можно рассматривать как целое число.
3. Если это целое и положительное двоичное число, то вместе с добавлением 0 в старший разряд число превращается в код. Для отрицательного двоичного числа перед ним ставится единица.
Пример 2.
Обратный код положительного двоичного числа совпадает с прямым кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица.
Пример 3.
Дополнительный код положительного числа равен прямому коду этого числа. Дополнительный код отрицательного числа m равен 2k - |m|, где k - количество разрядов в ячейке. Также дополнительный код отрицательного числа образуется путём прибавления 1 к обратному коду.
При представлении целых чисел со знаком старший (левый) разряд отводится под знак числа, и под собственно число остаётся на один разряд меньше.
Алгоритм получения дополнительного кода отрицательного числа:
1. модуль отрицательного числа представить прямым кодом в k двоичных разрядах;
2. значение всех бит инвертировать: все нули заменить на единицы, а единицы на нули (таким образом, # получается k-разрядный обратный код исходного числа);
3. к полученному обратному коду прибавить единицу.
Дополнительный код используется для упрощения выполнения арифметических операций. Если бы вычислительная машина работала с прямыми кодами положительных и отрицательных чисел, то при выполнении арифметических операций следовало бы выполнять ряд дополнительных действий. Например, при сложении нужно было бы проверять знаки обоих операндов и определять знак результата. Если знаки одинаковые, то вычисляется сумма операндов и ей присваивается тот же знак. Если знаки разные, то из большего по абсолютной величине числа вычитается меньшее и результату присваивается знак большего числа. То есть при таком представлении чисел (в виде только прямого кода), операция сложения реализуется через достаточно сложный алгоритм. Если же отрицательные числа представлять в виде дополнительного кода, то операция сложения, в том числе и разного знака, сводится к из поразрядному сложению.
Для компьютерного представления целых чисел обычно используется один, два или четыре байта, то есть ячейка памяти будет состоять из восьми, шестнадцати или тридцати двух разрядов соответственно.
Для компьютерного представления целых чисел обычно используется один, два или четыре байта, то есть ячейка памяти будет состоять из восьми, шестнадцати или тридцати двух разрядов соответственно.
Пример 4.
Задания к практической работе
Задание 1. Запишите дополнительный код числа, интерпретируя его как восьмибитовое целое со знаком:
1. а) 115; б) -34; в) -70.
2. а) 81; б) -40; в) -24.
3. а) 98; б) -111; в) -95.
4. а) 89; б) -65; в) -8.
5. а) 64; б) -104; в) -47.
6. а) 55; б) -89; в) -22.
7. а) 95; б) -68; в) -77.
8. а) 82; б) -13; в) -109.
Задание 2. Запишите прямой код числа, интерпретируя его как шестнадцатибитовое целое без знака.
1. а) 22491; б) 23832.
2. а) 18509; б) 28180.
3. а) 19835; б) 22248.
4. а) 29407; б) 25342.
5. а) 30539; б) 26147.
6. а) 17863; б) 25893.
7. а) 28658; б) 29614.
8. а) 27898; б) 24268.
Задание 3. Запишите дополнительный код числа, интерпретирую его как шестнадцатибитовое целое со знаком.
1. а) 20850; б) -18641.
2. а) 28882; б) -19070.
3. а) 18156; б) -28844.
4. а) 23641; б) -23070.
5. а) 22583; б) -28122.
6. а) 24255; б) -26686.
7. а) 31014; б) -24013.
8. а) 19518; б) -16334.
Задание 4. Запишите в десятичной системе счисления целое число, если дан его дополнительный код.
1. а) 0011010111010110; б) 1000000110101110.
2. а) 0110010010010101; б) 1000011111110001.
3. а) 0111100011001000; б) 1111011101101101.
4. а) 0111011101000111; б) 1010110110101110.
5. а) 0100011011110111; б) 1011101001100000.
6. а) 0000010101011010; б) 1001110100001011.
7. а) 0001101111111001; б) 1011101101001101.
8. а) 0000110100001001; б) 1001110011000000.
Контрольные вопросы и задания
1. Расскажите, где используется двоичный способ кодирования информации?
2. Как называется один из способов представления целых чисел в памяти компьютера?
3. Расскажите об алгоритме получения прямого кода целого положительного числа с учетом знака.
4. Расскажите об алгоритме получения дополнительного кода целого отрицательного числа с учетом знака.
5. Опишите способ получения десятичного числа по его дополнительному коду.
6.
© ООО «Знанио»
С вами с 2009 года.