0 / 1 / 0
Регистрация: 12.12.2014
Сообщений: 26
|
|||||||||||
1 | |||||||||||
Не могу разобрать требование задачи (простой)17.01.2018, 22:43. Показов 3130. Ответов 9
Метки нет Все метки)
(
Хоть и написал, что "простой", я лишь занимаюсь самостоятельным разбором языка C#, и сижу через сайты на подобии itvdn.
И вроде все идет хорошо, задания везде пока выполнял, но меня застопорил один момент с задачей, не совсем ее понимаю, уже приблизительное решение есть. "Известно, что у чисел, которые являются степенью двойки, только один бит имеет значение 1 Используя Visual Studio, создайте проект по шаблону ConsoleApplication Напишите программу, которая будет выполнять проверку - является ли указанное число степенью двойки или нет" Написал собственно код
"Известно, что у чисел, которые являются степенью двойки, только один бит имеет значение 1" А в другой которую мне нужно решить "Известно, что у четных чисел младший бит имеет значение 0" Что данной строкой хотели подчеркнуть, и как это влияет собственно вообще на требование?
0
|
|
17.01.2018, 22:43 | |
Ответы с готовыми решениями:
9
Не могу понять требование задачи
Хочу собрать компьютер бюджет 1100$ - задачи и требование в теме! Делегаты, разобрать простой пример |
3462 / 2469 / 1170
Регистрация: 14.08.2016
Сообщений: 8,161
|
||||||
17.01.2018, 22:57 | 2 | |||||
![]() Решение
1
|
0 / 1 / 0
Регистрация: 12.12.2014
Сообщений: 26
|
|
17.01.2018, 23:04 [ТС] | 3 |
Спасибо =) понял)
0
|
![]() 5864 / 4741 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||
17.01.2018, 23:05 | 4 | |||||
![]() Решение
Видимо предполагается, что нужно посчитать количество бит, равных 1. И, если такой бит один, то число является степенью двойки.
Проверить младший бит. Если он равен 0, то число четное. Хотя можно по аналогии с первым решением обойтись условием
1
|
0 / 1 / 0
Регистрация: 12.12.2014
Сообщений: 26
|
||||||
17.01.2018, 23:24 [ТС] | 5 | |||||
Там собственно где про 0
Мне необходимо сделать проверку на четность ) Что собственно, да), спасибо. Добавлено через 13 минут С проверкой четности в итоге пришел к такому выводу, более в лоб, если по условию младший бит = 0 То любые значения, где есть в конце единица - это уже непарное. Поэтому мы сместим число 0011 0011 влево на 7 и получим 1000 0000, и оно не будет совпадать с тем, что необходимо, т.е. да - это непарное. По поводу if ((x & 1) == 0 ), понял метод - но решил найти другой способ)
Спасибо всем еще раз за помощь, очень сильно помогли!!! Думал, что так и застряну в недоумении
0
|
![]() 5864 / 4741 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
17.01.2018, 23:27 | 6 |
1
|
0 / 1 / 0
Регистрация: 12.12.2014
Сообщений: 26
|
|
17.01.2018, 23:56 [ТС] | 7 |
Это я понял, благодаря вам обоим, включая наглядного примера Diamante. =) , я написал лишь из-за того, что ИСХОДЯ из задачи ТО делаем то-то, вообщем не суть =)
Добавлено через 4 минуты А как тему закрыть?
0
|
0 / 1 / 0
Регистрация: 12.12.2014
Сообщений: 26
|
|
17.01.2018, 23:59 [ТС] | 9 |
А ну все, понятно =), тогда оставлю так)
0
|
![]() 17210 / 12664 / 3321
Регистрация: 17.09.2011
Сообщений: 20,938
|
|
18.01.2018, 08:37 | 10 |
Наоборот — лишнее конвертирование.
Побитовые операции не определены для типа byte, значит при их использовании значение и результат будут конвертированы в int.
1
|
18.01.2018, 08:37 | |
Помогаю со студенческими работами здесь
10
Простой декодер - разобрать принцип Помогите разобрать простой класс для рисования прямоугольнка в окне разобрать решение задачи на с++
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |