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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 23:02   #1
SPBcore
 
Регистрация: 15.12.2010
Сообщений: 3
По умолчанию Реверс битов

помогите пожалуйста, программа не корректно работает.
нужно осуществить реверс битов введенного числа

вот то что мне кажется верным. почему то при любом введенном Х выдает один и тот же десятизначный ответ:

Код:
Код:
#include <stdio.h>
#include <math.h>
//typedef unsigned char Integer; 
//typedef unsigned short Integer; 
typedef unsigned int   Integer;  
//typedef unsigned long  Integer; 
void main(void)
{
	
	Integer a,r,i,x,m,n,c;
   scanf("%i",&x);
	a=8*sizeof(x);
	r=0;
	n=1;
	for(i=1;i<=a;i++)
	{
    m=x&n;
	 n=n<<1;
	 c=m<<(a-i);
	 r=r|c;
	}
printf("%u",r);
}

Последний раз редактировалось Stilet; 16.12.2010 в 09:54.
SPBcore вне форума Ответить с цитированием
Старый 16.12.2010, 01:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
unsigned rev (unsigned x)
{
 x = (x & 0x55555555) << 1 | (x >> 1) & 0x55555555;
 x = (x & 0x33333333) << 2 | (x >> 2) & 0x33333333;
 x = (x & 0x0F0F0F0F) << 4 | (x >> 4) & 0x0F0F0F0F;
 x = (x <<24) | ((x & 0xFF00) <<8) |
     ((x >> 8) & 0xFF00) | (x >> 24);
 return x;
}
"Алгоритмические трюки для программистов", "Вильямс", 2003, с.107
p51x вне форума Ответить с цитированием
Старый 16.12.2010, 19:34   #3
SPBcore
 
Регистрация: 15.12.2010
Сообщений: 3
По умолчанию

это самый простой вариант?
SPBcore вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реверс битов SPBcore Общие вопросы C/C++ 1 16.12.2010 01:00
Вставка битов Aleks2215 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 09.12.2010 20:32
реверс строки An123 Помощь студентам 2 04.02.2010 08:49
Реверс 2 grimm_jow Общие вопросы C/C++ 5 31.01.2010 03:41
Реверс четверок Ivaine Помощь студентам 1 29.12.2008 18:22