二进制计算程序

// 1.奇数的最后一位是1,而偶数的最后一位是0, 如5/2得2,所以下一位是0,若是得出奇数则下一位是1,如果是6的话就是r = 6%2 >0 ,6大于等于2 >6/2 >3 ,>r = 3%2 >1 ,最后一位和所有的都等于n%2 所以用到递归,r就是最后的值等于n%2 ,下一位被除数等于n/2.

// 2. 无符号是用 unsiged 表示 ,%lu,程序中用到 unsiged long  无符号长整型,return 0 结束程序

//?? 待解决问题,while (scanf("%lu",&number) == 1) 暂时理解为条件为真

#include <stdio.h>

//函数的声明

void to_binary(unsigned long number);

int main (void){

    printf("Enter an integer(q to quit):\n");

    unsigned long number;

    while ((scanf("%lu",&number) == 1)) {

        printf("Binary equivalent:\n");

        to_binary(number);

        putchar('\n');

        printf("Enter an integer (q to quit):\n");

    }

    printf("%lu\n",number);

    printf("input Done.\n");

    return 0;

}

//函数的实现

void to_binary (unsigned long n){

    

    int r;

    r = n%2;

    if (n) {

        to_binary(n/2);

        putchar(r?'1':'0');

        return;

    }

}

 

转载于:https://www.cnblogs.com/TheYouth/p/5061975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值