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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2015, 14:16   #1
nataqwest
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 20
Вопрос Язык си. программы на побитовые операции

Помогите составить программы на языке Си
1) Пользователь вводит целое число. Без операции деления на 2 определить, является ли оно четным
2) Пользователь вводит целое число. выведите число в двоичном виде (2СС) с использованием деления на 2.
3) Пользователь вводит целое число. выведите его в дополнительном коде с использованием операции деления.
4) Пользователь вводит целое число. Вывести его в СС которую введет пользователь до 10СС
5) Пользователь вводит целое число. Вывести его в СС которую введет пользователь до 16СС
6) Пользователь вводит вещественное число. вывести его в 2-ой СС с точностью до 10 двоичных разрядов.
nataqwest вне форума Ответить с цитированием
Старый 05.03.2015, 15:17   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

1.
Код:
#include <stdio.h>
void main()
{
int n = 13913;
n <<= 8*sizeof(n)-1;
n >>= 8*sizeof(n)-1;
if (n==0) printf("chet\n"); else printf("nechet\n");
}
2.
Код:
#include <stdio.h>
void main()
{
int n = 13913;

while(n != 0)
{
printf("%d", n%2); //вывод в обратном порядке
n -= n%2;
n /= 2;
}

}
4.
Код:
#include <stdio.h>
void main()
{
int n = 13913;
int ss=2;

scanf("%d", &ss);

while(n != 0)
{
printf("%d", n%ss);
n -= n%ss;
n /= ss;
}

}
5.
Код:
#include <stdio.h>
void main()
{
int n = 13913;
int ss=2;
int t;

scanf("%d", &ss);

while(n != 0)
{
t = n%ss;
if (t <= 9 ) printf("%d", t);
else if (t == 10)printf("a");
else if (t == 11)printf("b");
else if (t == 12)printf("c");
else if (t == 13)printf("d");
else if (t == 14)printf("e");
else if (t == 15)printf("f");

n -= n%ss;
n /= ss;
}

}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 05.03.2015, 18:02   #3
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Цитата:
Язык си. программы на побитовые операции
Так что
1. if (n & 1) printf("chet\n"); else printf("nechet\n");
FPaul вне форума Ответить с цитированием
Старый 05.03.2015, 18:34   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

FPaul
Вы ошибаетесь


Таблица истинности операции побитового И
0 0 0
0 1 0
1 0 0
1 1 1
при 1 на конце двоичного числа неоднозначно получается множество {0, 1}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 05.03.2015, 18:54   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Как бы все верно..
1-ая колонка в Вашей табличке - последний бит числа, 2-ая наша единичка (нет там 0-лей), а последняя - ответ..
Poma][a вне форума Ответить с цитированием
Старый 05.03.2015, 19:16   #6
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Код Fpaul ошибочный.
Скрин как подтверждение на эмпирике ошибочности
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 05.03.2015, 19:23   #7
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Sorry. Таки перепутал ветки
if (n & 1) printf("nechet\n"); else printf("chet\n");

В данном случае это не просто логическое И, а еще и взятие младшего бита по маске.

Спасибо, challengerr.

Последний раз редактировалось FPaul; 05.03.2015 в 19:27.
FPaul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Язык си.составить программы на побитовые операции nataqwest Помощь студентам 0 21.12.2014 18:01
Побитовые операции alexusankov C# (си шарп) 6 01.12.2013 22:38
С/С++, ПОБИТОВЫЕ ОПЕРАЦИИ. gopnikdj Помощь студентам 5 25.12.2012 18:29
Язык Си. Побитовые операции. hardorsoft Помощь студентам 4 30.06.2011 07:10
Задачка, побитовые операции язык C ToxaRUS Помощь студентам 0 05.11.2009 19:51