0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 43
|
|
1 | |
Операции с битами. Изменить значение указанного бита произвольного целого числа на противоположное...25.04.2019, 14:26. Просмотров 4627. Ответов 9
Метки нет Все метки)
(
Ребята, буду рад любой помощи. Советы, подсказки, отдельные части кода, ссылки на полезные ресурсы.
Мне необходимо написать программу, которая изменяет значение указанного бита произвольного целого числа на противоположное (1 на 0, 0 на 1). Программа должна предоставлять возможность вводить различные целые числа, номер бита n (биты нумеруются справа на левый) и выводить результат как в десятичном, так и в двоичном виде.
0
|
|
25.04.2019, 14:26 | |
Написать функцию, изменяющую значение n-го бита на противоположное Из произвольного целого числа или длинного целого числа, вводимого с клавиатуры, путем изменения цифр 0 или 1
Факториал произвольного целого числа |
|
Нарушитель
4586 / 2482 / 560
Регистрация: 12.03.2015
Сообщений: 12,215
|
||||||
25.04.2019, 14:42 | 2 | |||||
Ахтунг! Не отлаживал! Писал на заборе!
0
|
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 43
|
|
25.04.2019, 14:54 [ТС] | 3 |
Verevkin, спасибо за ответ. Не могли бы вы пройтись по строкам вашей функции с объяснениями?
0
|
580 / 137 / 57
Регистрация: 20.08.2017
Сообщений: 244
|
|||||||||||
25.04.2019, 15:34 | 5 | ||||||||||
![]() Решение
Для того, чтобы инвертировать n−ый бит числа можно использовать следующее выражение: A = A XOR (1 << N):
Чтобы понять, как это работает, разберем небольшой пример: Пусть A = 0000 10002 (810), N = 3. Тогда 1 << N = 0000 0001 << 3 = 0000 1000. Далее —
2
|
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 43
|
|
25.04.2019, 18:30 [ТС] | 7 |
Eanmos, что происходит в 3 строчке кода?
Добавлено через 12 минут Eanmos, допустим, пользователь ввел число 23. В двоичном виде это 10111. Теперь пользователь хочет заменить последний бит. Как получить 10110? Добавлено через 30 минут Eanmos, разобрался сам. Мне осталось только понять, как любое введенное число в десятичном виде представить в двоичном. Добавлено через 23 секунды Verevkin, вы тоже можете помочь в этом.
0
|
580 / 137 / 57
Регистрация: 20.08.2017
Сообщений: 244
|
||||||
25.04.2019, 19:42 | 8 | |||||
Можно вот так, например:
1
|
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 43
|
|
25.04.2019, 19:57 [ТС] | 9 |
Eanmos, я несколько минут назад доделал уже) Спасибо вам за помощь. Кстати, то, что было непонятным в вашем первом сообщении, стало понятнее после пары часов работы)
0
|
Нарушитель
4586 / 2482 / 560
Регистрация: 12.03.2015
Сообщений: 12,215
|
||||||
25.04.2019, 20:44 | 10 | |||||
Я был занят. Но свою функцию отдам.
0
|
25.04.2019, 20:44 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |