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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2014, 13:24   #1
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
Смущение Си. Побитовые операции (перестановка первого и последнего...)

Добрый день.
Помогите, пожалуйста. Нужно кодировать строку символом путем перестановки первого и последнего бита в байте, второго и предпоследнего и т.д. Я не могу понять, как это сделать
Ans797 вне форума Ответить с цитированием
Старый 08.12.2014, 14:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Э.э.э...
Видимо так:
Код:
char *s ...
 бла бла вводим s
for(int i=0;s[i];i++) s[i]^=129;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2014, 14:28   #3
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию

так не получается
Код:
#include<stdio.h>
#include<conio.h>
void main()
{
	char s[10];
	char *sp;
	int i;
	sp=&s;
	scanf("%s", &s);
	for(i=0; s[i]; i++)
		s[i]^=129;
	printf("%s", s[i]);
	_getch();
}
Выдаёт (null)
Ans797 вне форума Ответить с цитированием
Старый 08.12.2014, 14:51   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

И правильно выдает. У вас какое условие окончания цикла? И что вы выводите?... Хотя может вы просто забыли {} для цикла?.. хм..
p51x вне форума Ответить с цитированием
Старый 08.12.2014, 14:53   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
for(i = 0; s[i]; i++)
    s[i] = ((s[i] >> 7) & 1) | (s[i] << 7) |
           ((s[i] >> 5) & 2) | ((s[i] << 5) & 64) |
           ((s[i] >> 3) & 4) | ((s[i] << 3) & 32) |
           ((s[i] >> 1) & 8) | ((s[i] << 1) & 16);
printf("%s", s);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 08.12.2014, 14:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Э-э-э... да я походу условие задачи неправильно понял...
Сумимасен...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2014, 18:02   #7
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию

Спасибо вам большое
Ans797 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Побитовые операции V_I_P Общие вопросы C/C++ 5 15.10.2013 22:07
С++ побитовые операции Rus5 Помощь студентам 0 28.05.2013 22:34
Побитовые операции в JS Решетова Алена JavaScript, Ajax 2 22.05.2013 17:35
Перестановка в строке первого и последнего слова.. mihail0608 Общие вопросы C/C++ 16 08.12.2009 16:25
Побитовые операции WinterLord Общие вопросы C/C++ 1 12.10.2008 22:39