Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 26

Найти хотя бы один единичный бит на нечетной позиции в числе

30.07.2021, 11:52. Показов 2299. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не нашел нужного раздела для данного вопроса и по этому напишу здесь.

Есть следующая задача из заголовка, есть число в 32битной системе:
170 - в двоичном формате: 00000000000000000000000010101010
0xAAAAAAAA - в двоичном формате 10101010101010101010101010101010 (число, где все ЧЕТНЫЕ биты = 1)

почему 170 в данной задаче является числом у которого хотя бы один нечетный бит является 1, когда все единичные биты на четных позициях?

Пример:
00000000000000000000000010101010 - 170
10101010101010101010101010101010 - 0xAAAAAAAA

у меня есть задача и есть ее решение, я просто пытаюсь понять почему так.
В моем понимании 170 & 0xAAAAAAAA вернет тоже самое число 170 и это говорит о том, что в числе 170 имеется хотя бы один ЧЕТНЫЙ, а не НЕЧЕТНЫЙ бит равняющийся единице.

Заранее спасибо за помощь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2021, 11:52
Ответы с готовыми решениями:

Получить наибольшую цифру числа m, которая является нечетной, и номер ее позиции в числе m
Ввести натуральное число m. Получить наибольшую цифру числа m, которая является нечетной, и номер ее позиции в числе m

Программа выясняющая, есть ли в числе N хотя бы один нуль
Условии задачи. Программа выясняющая, есть ли в числе N хотя бы один нуль. Код программы: unit Unit1; interface uses

Сделать в числе n циклическую перестановку четных бит на k бит вправо
Написать программу, которая позволит ввести два числа n и k типа ulong с клавиатуры, напечатать их на дисплее, и используя битовые операции...

8
Модератор
Эксперт С++
 Аватар для zss
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,234
30.07.2021, 11:56
Это смотря откуда считать,если от младших битов к старшим,то они четные,
а если от старших к младшим,то нечетные.
1
 Аватар для FFPowerMan
2154 / 1234 / 508
Регистрация: 11.10.2018
Сообщений: 6,233
30.07.2021, 11:56
Цитата Сообщение от Revo1tDamaGe Посмотреть сообщение
в двоичном формате 10101010101010101010101010101010
- это если с 1 считать биты, но в C и в двоичной логике они считаются с 0.
1
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,181
30.07.2021, 12:04
Цитата Сообщение от Revo1tDamaGe Посмотреть сообщение
почему 170 в данной задаче является числом у которого хотя бы один нечетный бит является 1, когда все единичные биты на четных позициях?
биты считаются справа налево начиная с 0-го и по 31-й. 0, 2, 4,..., 30 - чётные позиции.
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 26
30.07.2021, 12:14  [ТС]
видимо слева на право с 0 до 31, где четные это 0, 2, 4, 6 слишком просто как оказалось)

получается число
010101 - слева на право
010100 - слева на право?????
101010 - справа на лева

Добавлено через 7 минут
Популярное и верное решение этой задачи представлено формулой:

РЕЗУЛЬТАТ = (ЧИСЛО & 0xAAAAAAAA) != 0

даже если учесть что
0xAAAAAAAA у нас теперь 01010101010101010101010101010101, то

00000000000000000000000010101010 - 170
01010101010101010101010101010101 - 0xAAAAAAAA
& = вернет нули нулевые

Возможно меня запутала какая то не верная документация, которая гласит:
"The number 0xAAAAAAAA is a 32 bit number with all even bits set as 1 and all odd bits as 0."

Какая разница с какой стороны считать? Если перед глазами число по определению со всеми НЕЧЕТНЫМИ = 0 и ЧЕТНЫМИ = 1 пересекается только единичными битами с числом которое подразумевает наличие хотя бы одного единичного бита на нечетной позиции



index:
10987654321098765432109876543210
00000000000000000000000010101010 - 170
10101010101010101010101010101010 - 0xAAAAAAAA

что не так?
0
 Аватар для FFPowerMan
2154 / 1234 / 508
Регистрация: 11.10.2018
Сообщений: 6,233
30.07.2021, 12:20
Цитата Сообщение от Revo1tDamaGe Посмотреть сообщение
слева на право
- справа налево от 0 до 31.

Добавлено через 1 минуту
СПРАВА НАЛЕВО ОТ 0 ДО 31.

Добавлено через 1 минуту
Двоичное число - что это? Посмотрите в Интернете.

Добавлено через 1 минуту
Как оно раскладывается на составные части - это степени двойки и поэтому считается только СПРАВА НАЛЕВО.
1
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,181
30.07.2021, 12:28
Лучший ответ Сообщение было отмечено Revo1tDamaGe как решение

Решение

Цитата Сообщение от Revo1tDamaGe Посмотреть сообщение
Возможно меня запутала какая то не верная документация, которая гласит:
"The number 0xAAAAAAAA is a 32 bit number with all even bits set as 1 and all odd bits as 0."
Просто эту хрень написал какой-то мудак, считающий биты с 1. Перестань читать текст, написанный мудаками, и всё наладится.
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 26
30.07.2021, 12:55  [ТС]
Пообедав я тоже пришел к данному выводу, как я предположил выше - весь сыр бор из-за изначально неверных данных, впредь буду внимательнее выбирать номенклатуру.

p.s: мистер ффповдаблюирмэн спасибо за уделенное время и ненужную информацию, на примере мистера Веревкина и его наглядного примера можете пощупать разницу между решением вопроса и ... просто и)

Спасибо всем большое за ответы.
0
 Аватар для FFPowerMan
2154 / 1234 / 508
Регистрация: 11.10.2018
Сообщений: 6,233
30.07.2021, 13:05
Я бы твоем месте так не умничал. Знаний 0, а что-то говоришь еще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2021, 13:05
Помогаю со студенческими работами здесь

Найти количество единиц в числе с 5 по 10 бит
Ввести целое число A и посчитать, сколько единиц в числе с 5 по 10 бит, включая эти биты.

Функция: выделить из целого числа крайний справа единичный бит
3.Написать функцию, которая, используя формулу , выделяет из целого числа крайний справа единичный бит.

Найти min элемент в четной позиции последовательности и max элемент в нечетной
Выдаёт ошибки. Задача: Условия: даны натуральные числа n, A1, A2, … An Найти: минимальное число записанное в чётную позицию...

Написать функцию, которая, используя формулу x&(-x) выделяет из целого числа x крайний справа единичный бит
3. Написать функцию, которая, используя формулу x&(-x) выделяет из целого числа x крайний справа единичный бит.

Возвести во введенном натуральном числе каждую цифру в степень, соответствующую ее позиции в числе
Помогите, каким образом это можно сделать? Возвести во введенном натуральном числе каждую цифру в степень, соответствующую ее позиции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru