A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chenweile_hi 中级黑马   /  2015-10-23 13:04  /  1221 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

二进制和十进制转换知道,但是换成8和16就有点搞不懂了。请教大神!

4 个回复

倒序浏览
八进制转十六进制:先转成二进制再转十六进制
十六进制转八进制:先转成二进制再转八进制
回复 使用道具 举报
//do while循环求出十进制除当前进制数的余数
        do
        {
            //num[1]开始存得到的余数
            num[i++]=n%base;
            //每次取余数后除一次
            n/=base;
        }while(n!=0);//当除到没有余数,跳出循环
        
        printf("%d进制",num[0]);
        printf("转换的结果:");
        
        //将数组存放的余数反向打印
        for(j=i-1;j>=1;j--){
            //判断余数如果大于大于9小于17,以指定字符输出
            if(num[j]==10){
                printf("A");
            }else if(num[j]==11)
            {
                printf("B");
            }else if(num[j]==12)
            {
                printf("C");
            }else if(num[j]==13)
            {
                printf("D");
            }else if(num[j]==14)
            {
                printf("E");
            }else if(num[j]==15)
            {
                printf("F");
            }
            else{
                printf("%d",num[j]);
            }
        这个是我的入学题,反正思路给你,这个是10进制转任意进制的。
回复 使用道具 举报
8进制和16进制之间的转换,可以通过2进制转换。8进制转换为2进制,每一位8进制变成3位2进制数,然后再将2进制数每4位隔开,隔开的每4位2进制数就是对应的16进制数
  
例如:

8进制            :      2355

2进制           :      010  011 101 101

每4位分隔    :      0100 1110 1101

16进制数      :     4ED
回复 使用道具 举报
先8转2,在2转16
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马