栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言十六进制转八进制

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言十六进制转八进制

思路:将十六进制先转为十进制再转为八进制

十六进制转十进制:与二进制转十进制类似。对十六进制每个数从左往右依次乘16的0,1,2,......并相加得到相应的十进制。

比如:对123ABC,12×16(0)+11×16(1)+10×16(2)+3×16(3)+2×16(4)+1×16(5)

十进制转八进制:与十进制转二进制类似。十进制的数对8取余并保存,最后将所得所有余数倒着输出,所得结果即为所得八进制结果。

比如:对39,39%8=7,39/8=4,4%8=4,4/8=0。余数为74,所以所得八进制为47。

以下是代码详情:

#include
#include
#include
int main()
{
	char a[100][100],b[100][100];
    int i,j,m,k;
    long long n=0;
    printf("请输入需要计算的数的个数:n");
    scanf("%d",&m);
    for(k=0;k='A' && a[k][i]<='F')//将十六进制的字母转为数字方便计算
            a[k][i]=(a[k][i]-'A')+10+'0';
            n+=((a[k][i]-'0')*(pow(16,strlen(a[k])-1-i)));//转十进制
        }
        for(j=0;;j++)//十进制转为八进制并存入数组B中
        {
            b[k][j] = n % 8;
            n = n / 8;
            if (n == 0)
            {
                break;
            }
        }
    }
    for(k=0;k= 0; j--)//从后往前倒着输出
        {
            printf("%d", b[k][j]);
        }
            printf("n");
    }
	return 0;
}

小编的编程还欠提升,如果有什么小错误,还请大家帮我指出来,我后期我会努力改进滴~谢谢大家啦~

希望该内容能帮大家更好的理解进制转换~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号