#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;}

评论