zoukankan      html  css  js  c++  java
  • 进制转换

    其他进制向十进制转换:利用一个变量c依次计算每位权重,初始权重为 1,每经过一位就累乘进制数a,c依次等于1,a1,a2,a3 .

    从低位到高位依次遍历各个数位上的数字,与当前的权重相乘;依次累加得到的积,即为转换后的十进制数。

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 
     5 int main()//k进制数转换成十进制,十进制转换成m进制数,
     6 {
     7     int a,b;
     8     char bufa[20];
     9     while(scanf("%d%s%d",&a,bufa,&b)!=EOF)
    10     {
    11         int tmp = 0,c = 1,l = strlen(bufa);//tmp为将要计算的a进制数对应的十进制,c为各个数位的权重,
    12         //最低位权重为1,之后每位权重是前一位权重的a倍
    13         for(int i=l-1;i>=0;i--)//从低位到高位遍历每一位上的数
    14         {
    15             int x=0;//计算该位上的数字
    16             if(bufa[i]>='0' && bufa[i]<='9')
    17             {
    18                 x=bufa[i]-'0';//计算其代表的数字
    19             }
    20              else if(bufa[i]>='a' && bufa[i]<='z')
    21                  {
    22 
    23                      x=bufa[i]-'a'+10;
    24                  }
    25              else
    26                  {
    27                      x=bufa[i]-'A'+10;
    28                  }
    29              tmp+=x*c;
    30              c=c*a;//下一位数位权重
    31         }
    32         int s=0;
    33         char bufb[20];
    34         do
    35         {
    36             int x = tmp%b;
    37             bufb[s ++] = (x<10)?(x+'0'):(x-10+'A');//将数字转换成字符
    38             tmp = tmp/b;
    39         }while(tmp!=0);
    40         for(i = s - 1;i >= 0;i --)
    41             printf("%c",bufb[i]);
    42         printf("
    ");
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    开发一个微信小程序实例教程
    java注解
    dubbo provider提供者服务打包
    Dubbo记录
    SpringBoot整合ActiveMQ 生产者---消费者
    dubbox 的各种管理和监管
    Zookeeper 3.5启动时 8080端口被占用
    springboot整合最新版dubbo以及dubbo-admin的安装
    分布式服务框架 dubbo/dubbox 入门示例
    Maven安装配置【WIN10】
  • 原文地址:https://www.cnblogs.com/Xilian/p/3646991.html
Copyright © 2011-2022 走看看