黑马程序员技术交流社区

标题: 8进制和16进制怎么转换的? [打印本页]

作者: chenweile_hi    时间: 2015-10-23 13:04
标题: 8进制和16进制怎么转换的?
二进制和十进制转换知道,但是换成8和16就有点搞不懂了。请教大神!
作者: 易沛东    时间: 2015-10-23 15:10
八进制转十六进制:先转成二进制再转十六进制
十六进制转八进制:先转成二进制再转八进制
作者: kingwang    时间: 2015-10-26 17:59
//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进制转任意进制的。
作者: liujun_lll    时间: 2015-10-27 17:44
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
作者: StillSad    时间: 2015-10-27 18:20
先8转2,在2转16




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2