Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2021, 23:16   #1
Mister Mi
Пользователь
 
Регистрация: 25.10.2020
Сообщений: 14
По умолчанию По условию надо вывести количество различных цифр в 16ричном представлении. Что происходит в цикле, не могу понять как это работает?

Здравствуйте! Помогите пожалуйста, не могу разобраться с программой.По условию надо вывести количество различных цифр в 16ричном представлении. Что происходит в цикле, не могу понять как это работает?
Код:
size_t b = 0, j;
	int i = 0, x;
	printf("x: ");
	scanf("%d", &x);
	do {
		j = x & 0xF;
		if (!((b >> j) & 1)) {
			++i;
			b |= 1 << j;
		}
	} while ((x >>= 4) != 0);
	printf("%d", i);
Mister Mi вне форума Ответить с цитированием
Старый 09.04.2021, 23:20   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Переменная b используется для сохранения использованных 16-ричных цифр (каждый бит отвечает за свою цифру). Берется по одной 16-ричной цифре из x (младший разряд), проверяется на наличие в b, младший разряд x отбрасывается.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.04.2021, 15:26   #3
Mister Mi
Пользователь
 
Регистрация: 25.10.2020
Сообщений: 14
По умолчанию

BDA, Спасибо большое)))
Mister Mi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять,что происходит в программе. Помогите добавить комментарии. anasttb Паскаль, Turbo Pascal, PascalABC.NET 2 22.03.2017 16:28
как задать эти две даты...не могу понять что за 100-наносекундный интервал...и что это за дата 1 января 0001 года der90 PHP 4 25.04.2014 13:46
Не могу понять строку кода. Подскажите что тут происходит pompiduskus JavaScript, Ajax 9 06.04.2014 20:25
не могу понять как это работает Константин78 Помощь студентам 4 01.09.2011 00:31
Не могу понять как надо ч/з форму вывести результат на лист и еще связать с другим листом данных Aliyushka Microsoft Office Excel 28 16.01.2009 19:44