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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2015, 11:26   #1
Александр Шатило
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 29
Восклицание Битовые операции

Помогите написать программу:
Установить в ноль каждый третий значащий бит целого числа А.

Код:
#include <iostream>
using namespace std;
void main()
{
setlocale (LC_CTYPE,"Russian");
int A=150;
}
Тишка

Последний раз редактировалось Stilet; 22.02.2015 в 15:03.
Александр Шатило вне форума Ответить с цитированием
Старый 22.02.2015, 12:12   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Код:
#include <stdio.h>

unsigned int inr(unsigned int x) 
{ 
unsigned int result, i, t, t1, f; 
for(i = 0, result = 0; i < 32; i++)
{ 
t1 = 0;
f = 0;
if (i%3 == 0) f = 1;
t = x;
t = t << (31 - i); 
t = t >> 31;
printf("%d", t);

if (f==1) t = 0;

t1 = t;
t1 = t1 << 31;
t1 = t1 >> (31 - i);
result |= t1;

}

printf("\n");
return result;
}

void main() { inr( inr(476) ); }
"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 вне форума Ответить с цитированием
Старый 22.02.2015, 12:26   #3
Александр Шатило
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 29
По умолчанию

мне нужно сделать с помощью команды _itoa_s
Тишка
Александр Шатило вне форума Ответить с цитированием
Старый 22.02.2015, 15:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нужно сделать с помощью команды _itoa_s
Код:
int A=150;
char s[3000];
_itoa_s(A,&s,3000,2);
for(i=strlen(&s);i>=0;i-=3) s[i]='0';
Дальше s возвращаешь в число.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2015, 15:42   #5
Александр Шатило
Пользователь
 
Регистрация: 18.01.2015
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
int A=150;
char s[3000];
_itoa_s(A,&s,3000,2);
for(i=strlen(&s);i>=0;i-=3) s[i]='0';
Дальше s возвращаешь в число.
как вернуть в число s?
Тишка
Александр Шатило вне форума Ответить с цитированием
Старый 22.02.2015, 16:30   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Используй atoi(). Пример: https://msdn.microsoft.com/ru-ru/library/yd5xkb5c.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые операции delaimo Общие вопросы C/C++ 5 21.06.2014 10:05
Битовые операции C++ MarchZM Помощь студентам 0 30.05.2011 18:18
Битовые операции СИ savra Помощь студентам 0 10.03.2010 19:31
Битовые операции ("")(Э_Є)("") Общие вопросы C/C++ 4 03.07.2009 19:15
Битовые операции DrAlexx2121 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 14.06.2008 22:26