С++ на побитовый сдвиг

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
tota
Сообщения: 5
Зарегистрирован: 12 янв 2007, 18:59

13 янв 2007, 02:39

Надо написать программу на С++
Задание на побитовый сдвиг выяснить является ли двоичная запись числа полиндромoм (перевёртышем)
её часть уже есть:
#include<stdio.h>
#include<conio.h>
void main()
{long int a;
int i, n, j, u, k, c, b;
printf("Введите натуральное число : "); scanf("%lu",&a);
n=(a>255)?(a>65535)?31:15:7;
for (i=n;i>=0;i--)
{printf("%d",(a>>i)&0x1);
}
for (u=n;((a>>u)&1)!=1&&u!=-1;u--);
++u;
printf(" dv= %u ",u);
for (i=(u-1);i>=0;i--)
{printf("%d",(a>>i)&0x1);
}
printf(" Биты числа в прямом порядке : ");
for (i=(u-1);i>=0;i--)
printf("%d",(a>>i)&0x01);
printf("\n");
printf("Биты числа в обратном порядке: ");
for (i=0;i<=(u-1);i++)
printf("%d",(a>>i)&0x01);
printf("\n\n");
надо написать ещё один цикл, училка сказала, что в две строчки.
Ответить