Помогите, пжлста В заданном массиве чисел биты каждого числа переписать в обратном порядке. Язык C/C++

Помогите, пжлста В заданном массиве чисел биты каждого числа переписать в обратном порядке. Язык C/C++

  • В такой задаче биты не могут быть произвольного типа. Для чисел с плавающей точкой Вы можете получить неразрешённые комбинации.
    Для целочисленных чисел эта задача подходит

    #include
    #include

    template < class T > void reverse(T *p,int N)
    for(j=0;j-N;cout.width(sizeof(T)*2),cout.fill('0'),cout < < p[j++] << 't'); cout << endl; int main () { int j,N; srand(time(0)); cout << "N="; cin>>N;
    { short *p=new short[N]; for(j=0;j-N;p[j++]=rand()); reverse(p,N); delete [] p; }
    { int *p=new int[N]; for(j=0;j-N;p[j++]=rand()); reverse(p,N); delete [] p; }
    }

  • Числа какого типа?
    Покажите ваш код и где вам сложно?
  • версия:
    для каждого числа пихать в новое число последний бит исходного, постепенно сдвигая новое вверх, а старое вниз
    примерно так
    b=0;while(a) (a & 0x1); a=a>>1;
    (сляпано на лету и не тестировалось на применимость ко всем типам данных)