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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2016, 14:42   #1
Анастасия_1992
Новичок
Джуниор
 
Регистрация: 08.01.2016
Сообщений: 4
По умолчанию Нужна помощь - считать в другую переменную 3 последних бита числа из переменной int

Подскажите пожалуйста! К примеру есть переменная int n=0х58; как считать в другую переменную 3 последних бита данного числа?
Анастасия_1992 вне форума Ответить с цитированием
Старый 08.01.2016, 15:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если я правильно понял то:
Код:
 int n=0х58;
 int k=n & 0xE0;
В к останется только три страшных бита.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2016, 15:42   #3
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

У меня своё мнение.
int k = n & 7;
Считаю с другого конца.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 08.01.2016, 16:20   #4
Анастасия_1992
Новичок
Джуниор
 
Регистрация: 08.01.2016
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если я правильно понял то:
Код:
 int n=0х58;
 int k=n & 0xE0;
В к останется только три страшных бита.
т.е.3и 000. как их вывести на экран для проверки?
Анастасия_1992 вне форума Ответить с цитированием
Старый 08.01.2016, 16:40   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Сконвертировать в двоичную систему и вывести.
Если не ошибаюсь itoa() в этом поможет: http://www.cplusplus.com/reference/c.../itoa/?kw=itoa
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2016, 17:03   #6
Анастасия_1992
Новичок
Джуниор
 
Регистрация: 08.01.2016
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Сконвертировать в двоичную систему и вывести.
Если не ошибаюсь itoa() в этом поможет: http://www.cplusplus.com/reference/c.../itoa/?kw=itoa
Код:
int main()
{
	
	int n;
	n=0x89;
	 //int k;
	// k= n & 0xE0;
	int k = n & 7;
	//printf("k= ", k);
	//std::cout   <<  k;
	//int i;
  char buffer [3];
  itoa (k, buffer, 2);
  printf ("binary: %s\n",buffer);

getchar ();
	return 0;
}
Выводит 1
А должен 001 т.к hex 89= 10001001

Последний раз редактировалось Stilet; 08.01.2016 в 17:51.
Анастасия_1992 вне форума Ответить с цитированием
Старый 08.01.2016, 17:07   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чем 001 отличается от 1? Или 00000001 от 1?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.01.2016, 17:10   #8
Анастасия_1992
Новичок
Джуниор
 
Регистрация: 08.01.2016
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А чем 001 отличается от 1? Или 00000001 от 1?
Точно это же тоже самое. Спасибо большое. Сглупила.
Анастасия_1992 вне форума Ответить с цитированием
Старый 08.01.2016, 17:52   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
т.к hex 89= 10001001
Тебе младшие три бита нужны? О_о
А чего ж ты пишешь про последние биты?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2016, 18:29   #10
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Цитата:
Сообщение от jura_k Посмотреть сообщение
У меня своё мнение.
int k = n & 7;
Считаю с другого конца.
int k = n & 7;
printf ("%i%i%i\n", k / 4, (k / 2) % 2, k % 2);

или:

printf ("%i%i%i\n", k >> 2, (k >> 1) % 2, k % 2); (операция поразрядного сдвига вправо)
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось jura_k; 08.01.2016 в 18:34.
jura_k вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
даны два числа A и B.проверить являются ли числа A и B нечётными ( Делфи 7 нужна помощь в решении задач) nadyaH Помощь студентам 7 24.10.2013 17:51
Даны натуральные числа n и m. Получить сумму m последних цифр числа n pahanzona Microsoft Office Excel 11 27.02.2011 02:17
Значение отдельного бита целого числа в логическую переменную -MagicAlex- Общие вопросы Delphi 2 28.12.2010 09:03
Как считать int-овское число из файла в переменную? (Си) farewe11 Помощь студентам 5 31.05.2010 19:46
Обращение к переменной через другую переменную tae1980 Microsoft Office Excel 2 22.03.2010 00:52