Другие языки программирования и технологии
Выполнить арифметические операции в двоичной системе счисления по алгоритмам, применяемым в ЭВМ
сложить числа А и В (в формате с фиксированной запятой в дополнительном модифицированном коде) A=-5 B=-8.25
"Выполнить . .сложить " - многовато команд на одно несложное задание!
Переведи заданные числа в 2 с. с. , затем знак минус замени на 1, числовые разряды двоичного числа запиши без изменения так получишь прямой код числа;
затем в числовых разрядах прямого кода все 0 замени на 1, а все 1 замени на 0 и получишь обратный код;
к младшему разряду обратного кода прибавь 1, так получишь дополнительный код числа.
После этого выполняй арифметические операции над обр. и доп. кодами чисел.
Переведи заданные числа в 2 с. с. , затем знак минус замени на 1, числовые разряды двоичного числа запиши без изменения так получишь прямой код числа;
затем в числовых разрядах прямого кода все 0 замени на 1, а все 1 замени на 0 и получишь обратный код;
к младшему разряду обратного кода прибавь 1, так получишь дополнительный код числа.
После этого выполняй арифметические операции над обр. и доп. кодами чисел.
Сначала числа преобразуются в двоичный код.
А=-5(10)=-101(2)
В=-8,25(10)=-1000,01(2)
Числа в формате с фиксированной запятой в памяти хранятся таким образом, что позиция запятой известна и неизменна для всех чисел (отсюда и название с фиксированной точкой) .
Для этого число А должно быть представлено в виде -101,00(2)
Пусть для хранения используется 8 разрядов. Тогда числа в прямом коде будут представлены в виде
А: 1.00101,00
В: 1.01000,01 - здесь отделённый точкой старший разряд знаковый, 1 - означает минус.
Обратный код получается инверсией всех разрядов, кроме знаковых.
А: 1.11010,11
В: 1.10111,10
Теперь нужно получить дополнительный код. Но перед этим нужно иметь в виду, что ни запятые, ни точки в памяти не хранятся, но всегда известно, где знаковый разряд и сколько разрядов в дробной части. Поэтому
А: 11101011 + 1 = 11101100
В: 11011110 + 1 = 11011111
Это и есть внутреннее представление заданных чисел в дополнительном коде.
Сложение и вычитание чисел с фиксированной точкой производится так же, как и для целых чисел.
11101100
+
11011111
---------------
111001011 - старший разряд (№8) будет выдавлен из разрядной сетки и в данном случае просто отброшен. Результат операции сложения 11001011.
Теперь можно преобразовать получившееся число в привычный десятичный вид и проверить результат.
1.1001011
1.0110100 - обратный код
1.0110100 + 1 = 1.0110101 - прямой код.
Возвращаем запятую на место
1.01101,01 -> -(8+4+1+1/4)
В десятичном виде это число -13,25
Сложение было выполнено правильно.
А=-5(10)=-101(2)
В=-8,25(10)=-1000,01(2)
Числа в формате с фиксированной запятой в памяти хранятся таким образом, что позиция запятой известна и неизменна для всех чисел (отсюда и название с фиксированной точкой) .
Для этого число А должно быть представлено в виде -101,00(2)
Пусть для хранения используется 8 разрядов. Тогда числа в прямом коде будут представлены в виде
А: 1.00101,00
В: 1.01000,01 - здесь отделённый точкой старший разряд знаковый, 1 - означает минус.
Обратный код получается инверсией всех разрядов, кроме знаковых.
А: 1.11010,11
В: 1.10111,10
Теперь нужно получить дополнительный код. Но перед этим нужно иметь в виду, что ни запятые, ни точки в памяти не хранятся, но всегда известно, где знаковый разряд и сколько разрядов в дробной части. Поэтому
А: 11101011 + 1 = 11101100
В: 11011110 + 1 = 11011111
Это и есть внутреннее представление заданных чисел в дополнительном коде.
Сложение и вычитание чисел с фиксированной точкой производится так же, как и для целых чисел.
11101100
+
11011111
---------------
111001011 - старший разряд (№8) будет выдавлен из разрядной сетки и в данном случае просто отброшен. Результат операции сложения 11001011.
Теперь можно преобразовать получившееся число в привычный десятичный вид и проверить результат.
1.1001011
1.0110100 - обратный код
1.0110100 + 1 = 1.0110101 - прямой код.
Возвращаем запятую на место
1.01101,01 -> -(8+4+1+1/4)
В десятичном виде это число -13,25
Сложение было выполнено правильно.
Похожие вопросы
- Число 10 (в десятичной системе счисления) в двоичной системе счисления имеет вид???
- Переведите число 111 из десятичной системы счисления в двоичную систему счисления.
- На свете существует 10 типов людей: те кто понимают двоичную систему счисления...
- Перевод из десятичной в двоичную систему счисления.
- Двоичная система счисления
- Как перевести какое либо слово в кодировке Windows - 1251 в двоичной системе счисление?)
- Двоичная система счисления
- Как перевести число из двоичной системы счисления в восьмеричную в Ассемблер (tasm) Программа должна быть простой!
- Программа C++ Напишите программу которая переводит из десятичной в двоичную систему счисления (C++)
- Двоичная, десятеричная, и шестнадцатеричная система счисления.