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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.10.2013, 21:47   #1
dannae
Пользователь
 
Аватар для dannae
 
Регистрация: 29.09.2013
Сообщений: 53
Восклицание Помогите пожалуйста(язык Си)

Мне нужно: Запросить с консоли целое число и проверить значение бита с указанным номером в этом числе. Номер бита 9. Результат такой проверки вывести на консоль. Для удобства разрешается запрашивать указанное число в восьмиричной или шестнадцатиричой системе счисления. При выполнении задания важно обратить внимание на грамотный выбор типа данных анализируемого числа.

у меня такой вод код:
int x=32585;
x=x>>9;
x=x&1
printf((x==1)?"yes";"no");

во всяком случае преподаватель объяснял так, но так у мен яне получается, помогите мне, пожалуйста, и объясните, как это делается(
dannae вне форума
Старый 14.10.2013, 22:18   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

После первого сдвига вправо, в младшем бите будет второй бит.
После девятого сдвига - десятый.
Так что сдвигать надо на единицу меньше.



Как-то так, ...
Как-то так, ...
ViktorR на форуме
Старый 14.10.2013, 22:30   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А младший бит - 1-й или 0-й ?
type_Oleg вне форума
Старый 14.10.2013, 23:36   #4
dannae
Пользователь
 
Аватар для dannae
 
Регистрация: 29.09.2013
Сообщений: 53
По умолчанию

так, в общем-то я разобралась, получается вот такой код
НО(!) объясните почему в конце 2?
int b;
scanf ("%d", &b);
printf ("%d", (b>>8)%2);
dannae вне форума
Старый 15.10.2013, 01:08   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

%2 и &1 эквивалентны (в данном случае, по крайней мере).
%2 - проверка на четность, которая зависит от младшего бита:
младший бит 0 - число четное - делится без остатка на 2
младший бит 1 - число нечетное - делится с остатком на 2
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума
Старый 15.10.2013, 14:17   #6
dannae
Пользователь
 
Аватар для dannae
 
Регистрация: 29.09.2013
Сообщений: 53
По умолчанию

Это я уже все поняла, спасибо)
Можете сказать, это правильно или нет?

#include <stdio.h>
void main ()
{
int a, p=-100, q=100;
scanf ("%d", &a);
printf ("%d\n", p<a&& q>a);
int b;
scanf ("%d", &b);
printf ("%d", (b>>8)%2);
}
dannae вне форума
Старый 15.10.2013, 16:34   #7
dannae
Пользователь
 
Аватар для dannae
 
Регистрация: 29.09.2013
Сообщений: 53
По умолчанию

Я со всем разобралась, помощь больше не требуется, всем спасибо
dannae вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите пожалуйста язык программирования типа bat. Linked007 Помощь студентам 3 26.03.2010 21:11
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! VisTBacK Помощь студентам 6 19.09.2008 13:44