2~10进制内转换到10进制
转换是可以从最后一位开始的,每次我的第一直觉都是按公式从前面开始,发现很经常错。从后面开始比较简洁而且不易错误。
- /************************************************************************/
- /* a是要转换的数,bit是原本的进制(2~10) */
- /************************************************************************/
- __int64 toTen(__int64 a,int bit)
- {
- __int64 b=1,sum=0;
- while (a!=0)
- {
- sum+=a%10*b;
- a/=10;
- b*=bit;
- }
- return sum;
- }
对于特定进制,如二进制,八进制,十进制,十六进制,可以直接特定输出,如:
- int main()
- {
- int a ;
- char biao[100];
- printf("请输入您要转化的十进制数!!~/n");
- scanf("%d",&a);
- printf("您的十进制数%d经过转化为二进制数为%s/n",a,itoa(a,biao,2));
- printf("您的十进制数%d经过转化为八进制数为%o/n",a,a);
- printf("您的十进制数%d经过转化为十六进制数为%X/n",a,a);
- return 0;
- }
对于itoa()函数将在下一篇详细说明