Автор | Сообщение |
|
Отправлено: 09.12.18 16:18. Заголовок: Задание 6-1 номера 157-160
Здравствуйте, намекните, пожалуйста, с какого конца к этому заданию подступиться. Пробую через разность в 2-ой с.с., что то никак не получается. 157) Автомат обрабатывает натуральное число N (0 ≤ N ≤ 255) по следующему алгоритму: 1) Строится восьмибитная двоичная запись числа N. 2) Все цифры двоичной записи заменяются на противоположные (0 на 1, 1 на 0). 3) Полученное число переводится в десятичную запись. 4) Из нового числа вычитается исходное, полученная разность выводится на экран. Пример. Дано число N = 13. Алгоритм работает следующим образом: 1) Восьмибитная двоичная запись числа N: 00001101. 2) Все цифры заменяются на противоположные, новая запись 11110010. 3) Десятичное значение полученного числа 242. 4) На экран выводится число 242 – 13 = 229. Какое число нужно ввести в автомат, чтобы в результате получилось 113?
|
 |

|
Ответов - 6
[только новые]
|
|
|
| Администратор
|
Сообщение: 1767
|
|
Отправлено: 09.12.18 16:20. Заголовок: Ольга пишет: намекни..
Ольга пишет: цитата: | намекните, пожалуйста, с какого конца к этому заданию подступиться. |
|
Там все очень просто. Когда мы выполнили инверсию в 8 разрядах (заменили все 0 на 1 и наоборот), мы фактически вычли исходное число из числа 255.
|
 |

|
|
Отправлено: 12.12.18 22:05. Заголовок: Решение простое: 1. ..
Решение простое: 1. Инверсия числа и сумма самого числа дает 255 2. Тогда система. х+у = 255 х-у = 113 3. Из первого х = 255 - у. Подставляем во второе 255-2у=113, откуда у = 72 И всё :)))
|
 |

|
|
Отправлено: 01.06.19 18:55. Заголовок: Задача 160
А можно рассмотреть решение задачи 160? Автомат обрабатывает целое число N (0 ≤ N ≤ 255) по следующему алгоритму: Строится восьмибитная двоичная запись числа N. Все цифры двоичной записи заменяются на противоположные (0 на 1, 1 на 0). Полученное число переводится в десятичную запись. Из нового числа вычитается исходное, полученная разность выводится на экран. Какое число нужно ввести в автомат, чтобы в результате получилось «–21»? Получаем решение: 1. Переводим число -21 в восьмибитное представление: 11101011 2. Переводи его в десятичную систему счисления: 235 3. Получаем систему: x+y=255 x-y=235 4. Вычитаем из первого уравнения второе: 2y=20 5. Получаем y=10 Проверка показывает, что это правильный ответ. В файле answers даётся ответ 138, который также является верным. Т.е. задача имеет два решения?
|
 |

|
|
Отправлено: 02.06.19 00:41. Заголовок: Ответ
Здравствуйте! В условии сказано: цитата: | Автомат обрабатывает целое число N (0 <= N <= 255) по следующему алгоритму: Строится восьмибитная двоичная запись числа N. |
| Если первый (старший) разряд восьмибитной двоичной записи числа N отводится под знак числа, то диапазон чисел от -128 до 127 включительно. Числа большие 127 в этом случае представить нельзя. Значит, речь идет об однобайтовом представлении, которое применяется только для положительных целых чисел. В этом формате отсутствует знаковый разряд. Соответственно, нет отрицательных чисел. В этом случае ответом будет число 138. Это и будет правильный ответ в этой задаче. А вот если бы в условии было сказано, что строится ПРЯМОЙ восьмибитный КОД числа N, а (-128 <= N <= 127), то x + y = -1 x - y = -21 y = 10. В этом случае ответом было бы число 10. Просто алгоритм обработки числа был бы другим по сравнению с первым случаем. Замечание: В первом случае, если y = 10, то x = 245. x - y = 235, а не -21. Если же y = 138, то x = 117. x - y = -21. Во втором случае, если y = 10, то x = -11. x - y = -21. Во втором случае y не может быть равным 138.
|
 |

|
|
Отправлено: 17.04.21 14:53. Заголовок: как вы получили диап..
как вы получили диапазон чисел от -128 до 127 включительно? можно пожалуйста поподробнее решение этого задания?
|
 |

|
|
Отправлено: 17.04.21 18:42. Заголовок: Ответ
Здравствуйте, Степан! Вы пишете: цитата: | как вы получили диапазон чисел от -128 до 127 включительно? можно пожалуйста поподробнее решение этого задания? |
| Задание 5 задача 160: цитата: | Автомат обрабатывает целое число N (0 ≤ N ≤ 255) по следующему алгоритму: 1) Строится восьмибитная двоичная запись числа N. 2) Все цифры двоичной записи заменяются на противоположные (0 на 1, 1 на 0). 3) Полученное число переводится в десятичную запись. 4) Из нового числа вычитается исходное, полученная разность выводится на экран. Какое число нужно ввести в автомат, чтобы в результате получилось «–21»? |
|
Решение: В условии сказано: цитата: | Автомат обрабатывает целое число N (0 <= N <=255) по следующему алгоритму: Строится восьмибитная двоичная запись числа N. |
| Поскольку в восьмибитную двоичную запись "помещается" число 255, то, значит, речь идет об однобайтовом представлении, которое применяется только для положительных целых чисел. В таком формате отсутствует знаковый разряд. Соответственно, нет отрицательных чисел. В этом случае сумма инверсии числа и самого числа равна 255. Пусть y - исходное число, а x - созданное автоматом. Тогда получаем систему уравнений: x + y = 255 x - y = - 21 Вычтем из первого уравнения второе: 2y = 276 --> y = 138. Ответ: 138. Замечание: В ЭТОЙ задаче диапазон чисел от 0 до 255 (0 <= N <=255).
|
 |

|
|