C语言编程二进制整数向八进制、十进制、十六进制整数的转换

求程序。

二进制转换成八进制数
(1)二进制数转换成八进制数:对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:
将二进制数1101001转换成八进制数,则
(001 101 001)2
| | |
( 1 5 1)8
( 1101001)2=(151)8

(2)八进制数转换成二进制数:只要将每位八进制数用三位二进制数替换,即可完成转换,例如,把八进制数(643.503)8,转换成二进制数,则
(6 4 3 . 5 0 3)8
| | | | | |
(110 100 011 . 101 000 011)2
(643.503)8=(110100011.101000011)2
4、二进制与十六进制之间的转换
(1)二进制数转换成十六进制数:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
(2)十六进制转换成二进制数
如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。
例如:将(163.5B)16转换成二进制数,则
( 1 6 3 . 5 B )16
| | | | |
(0001 0110 0011. 0101 1011 )2
(163.5B)16=(101100011.01011011)2
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-09-16
#include<stdio.h>
void showbit(int n)
{    
 if(n>1){
        showbit(n/2);
        printf(" ");
    }
    printf("%d",n%2);
}
void showoct(int n)
{    
 if(n>7){
        showoct(n/8);
        printf(" ");
    }
    printf("%d",n%8);
}
void showhex(int n)
{
    if(n>15){
        showhex(n/16);
        printf(" ");
    }
    printf("%d",n%16);
}

int main()
{
    int a;
    printf("input a num:");
    scanf("%d",&a);
    showbit(a);
    printf("\n");
    showoct(a);
    printf("\n");
    showhex(a);
    printf("\n");
}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网