实现十六进制到八进制的转化

Posted xiaobaiyuan

tags:

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

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
    int n,i,j,k;
    int e;
    char num[10][100001];
    int sum[10]={0};
    int mon[100001];
    int i1 = 0,j1 = 0;
    scanf("%d",&n);
    //存储 
    for(i = 0;i < n;i ++)
    {
        scanf("%s",num[i]);
    }
    //应用
    for(i = 0;i < n;i ++)
    {
        k = strlen(num[i]);
        //printf("%d",k);
         for(j = 0;num[i][j] != ;j ++)
         {
             //printf("%d
",k);
             //printf("%c
",num[i][j]);
             if(num[i][j] >= 0 && num[i][j] <= 9)
             {
                 sum[i] += pow(16,k - 1) * (num[i][j] - 0);
                 //printf("%d
",sum[i]);
                 k --;
             }
             else
             {
                 if(num[i][j] == A)
                 {
                     sum[i] += pow(16,k - 1) * 10;
                     k --;
                 }
                 else if(num[i][j] == B)
                 {
                     sum[i] += pow(16,k -1) * 11;
                     k --;
                 }
                 else if(num[i][j] == C)
                 {
                     sum[i] += pow(16,k -1) * 12;
                     k --;
                 }
                 else if(num[i][j] == D)
                 {
                     sum[i] += pow(16,k -1) * 13;
                     k --;
                 }
                 else if(num[i][j] == E)
                 {
                     sum[i] += pow(16,k -1) * 14;
                     k --;
                 }
                 else 
                 {
                     sum[i] += pow(16,k -1) * 15;
                     k --;
                 }
            
                 
             }
         }
         i1 = 0;
         //printf("%d",sum[i]);
         while(sum[i])
         {
             
             e = sum[i] % 8;
             mon[i1] = e;
             sum[i] = sum[i] / 8;
             i1 ++;
         }
         for(j1 = i1 - 1;j1 >= 0;j1 --)
         {
             printf("%d",mon[j1]);
             
         }
                  printf("
");
     } 
    
    
 } 

 

以上是关于实现十六进制到八进制的转化的主要内容,如果未能解决你的问题,请参考以下文章

入栈c++十进制转化其他进制

java中如何将十进制数字转化成二进制?

十进制转化成八进制(一到十六进制)

自定义函数实现10进制转化为16进制

c# winform 如何实现16进制颜色值的转换

实现10进制转化成其它进制