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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 22:35   #1
GXDoblin
Новичок
Джуниор
 
Регистрация: 12.06.2011
Сообщений: 3
По умолчанию Битовые операции С++

Помогите, пожалуйста, найти ошибку. Функция, получив символ, должна "перевернуть" код символа (напр. 10010010 на 01001001) и вернуть получившийся символ. (если вводить "2" или "3" работает правильно, в других случаях выдает неправильный символ).
Вложения
Тип файла: txt bit.txt (188 байт, 129 просмотров)
GXDoblin вне форума Ответить с цитированием
Старый 13.06.2011, 02:40   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

Что значит "перевернуть"? Побитовая инверсия?
в этом случае ничего не надо
Код:
char bit_oper (char a)
{
	return ~a;
}
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 13.06.2011 в 02:56.
Jaguar83 вне форума Ответить с цитированием
Старый 13.06.2011, 07:55   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Jaguar83
причем тут оператор ~ ? Пример же написан. Инвертировать каждый бит не обязательно ).
rrrFer вне форума Ответить с цитированием
Старый 13.06.2011, 10:58   #4
GXDoblin
Новичок
Джуниор
 
Регистрация: 12.06.2011
Сообщений: 3
По умолчанию

"перевернуть"-записать в обратном порядке биты.
GXDoblin вне форума Ответить с цитированием
Старый 13.06.2011, 11:13   #5
GXDoblin
Новичок
Джуниор
 
Регистрация: 12.06.2011
Сообщений: 3
По умолчанию

Все, спасибо, я разобрался)
GXDoblin вне форума Ответить с цитированием
Старый 13.06.2011, 12:44   #6
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от GXDoblin Посмотреть сообщение
"перевернуть"-записать в обратном порядке биты.
Так бы сразу и сказал!
Примерно так, наверное
Код:
char bit_oper (char a)
{
	char c = 0;
	int mask = 0x80;
	int t = 0;
	int n = 7;

	while (!((a & mask)>>n))
	{
		mask >>= 1;	
		n--;
	}
	for(; n>=0; n--) 
	{
		c |= ((a & mask)>>n) << t++;
		mask >>= 1;
	}
	return (c);
}
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 13.06.2011 в 13:14.
Jaguar83 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Битовые операции СИ savra Помощь студентам 0 10.03.2010 19:31
Битовые операции ("")(Э_Є)("") Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 04.07.2009 13:19
Битовые операции ("")(Э_Є)("") Общие вопросы 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
Битовые операции LEX.darnica Помощь студентам 14 23.12.2007 19:40