进制转换

Posted yuxiaoba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进制转换相关的知识,希望对你有一定的参考价值。

总体思路:当要求十进制x的k进制表示时,我们只需要不断重复地把x对k求余,再除以k,即可得到由低到高的各个位数上的数

                   当要求得由k进制表示得数字得十进制时,我们需要依次计算各个数位上的数字与该位权重的积(第n位的权重为k^(n-1)),

                   然后将它们依次累加即可得到该十进制值

题目描述

    求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。     不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

输入描述:

    输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。
    数据可能存在包含前导零的情况。

输出描述:

    可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
示例1

输入

15 Aab3 7

输出

210306
 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 int main()
 5 {
 6     int a,b,c;
 7     char str[40],ans[40];
 8     int i;
 9     int temp,len,index;
10     int x;
11 
12     while( scanf("%d%s%d",&a,str,&b)!=EOF)
13     {
14         len = strlen(str);
15         temp = 0;  //表示十进制数,初始化为0
16         c = 1;  //c表示各个数位的权重,初始化为1
17         index = 0;  //表示目标数组中的位置
18         for( i=len-1; i>=0; i--)
19         {
20             //注意这里是从后往前循环
21             if( str[i]>=0 && str[i]<=9)
22                 x = str[i] - 0;
23             else if( str[i]>=a && str[i]<=z)
24                 x = str[i] - a + 10;
25             else if( str[i]>=A && str[i]<=Z)
26                 x = str[i] - A + 10;
27             temp += x*c;
28             c *= a;
29         }
30         do
31         {
32             //即使转换数值为0也会执行一遍
33             x = temp%b;
34             if( x<10 )  ans[index++] = x + 0;
35             else ans[index++] = x-10 + A;
36             temp/=b;
37         }
38         while( temp);
39         for( i=index-1; i>=0; i--)
40         {
41             //输出时顺序从高位到低位
42             printf("%c",ans[i]);
43         }
44         printf("\n");
45     }
46     return 0;
47 }

 

以上是关于进制转换的主要内容,如果未能解决你的问题,请参考以下文章

在代码片段中包含类型转换

sql 日期转换代码片段 - Dato,120,konvertere

php初步

android.view.InflateException:二进制 XML 文件第 15 行:二进制 XML 文件第 19 行:膨胀类片段时出错

HTML Bookmarklet模板:将任何JavaScript代码片段转换为Bookmarklet

go语言怎么将二进制转为字符串