#include <cstdlib>
#include <iostream>
using namespace std;
// 把 一个二进制数 倒序怎么 实现呀?比如 111000110 --> 011000111
// 把一个r进制的数 n(r进制数据对应的十进制数据)进行倒序 ,stage 为数据的长度
int inverse(int n,const short stage,short r)
{
char temp[stage];
int i=0;
do {
temp[i] = n%r; // 取 r 进制数个数位上的值
i++;
n /= r;
}while(i<stage);//while(n>0);
for(i = 0;i<stage;i++){ // 倒序前
printf("%x",temp[stage-i-1]);
}
printf("<-->");
for(i = 0;i<stage;i++){ // 倒序后
printf("%x",temp[i]);
}
int l = 1,nn = 0;
for(i = 0;i<stage;i++){
nn += temp[stage-i-1]*l;
l *= r; // 权值
}
return nn;
}
int main(int argc, char *argv[])
{
int n,nn;
n = 234;
nn = inverse(n,10,2);
printf("\n%d<-->%d",n,nn);
system("PAUSE");
return EXIT_SUCCESS;
}
评论