正文

r进制数据的倒序2007-11-03 14:25:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/vfdff/30701.html

分享到:

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

阅读(3358) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册