输入一个非负整数(十进制),输出此整数对应的二进制数

#include <stdio.h>

void turn(int n)
{
    if(n==0)
    {
        return;
    }
    else
    {
        turn(n/2);
        printf("%d",n%2);
        return;
    }
}

int main()
{
    int num;
    scanf("%d",&num);
    if(num==0)
        printf("%d",num);
    turn(num);
    return 0;
}

 

要实现这个功能,你可以使用C语言中的位操作和循环结构。这里是一个简单的程序示例,它接受一个十进制整数,然后将其转换为二进制并按相反的顺序打印出来: ```c #include <stdio.h> // 用于存放中间结果的组 char binary[32]; void reverse_binary(int num) { int i = sizeof(binary) - 1; // 从后往前开始计 while (num != 0) { binary[i] = num % 2 + '0'; // 将余转为字符并存入组 num /= 2; // 向左移位 i--; } if (binary[0] == '0' && strlen(binary) == 1) { // 如果全是零,不打印 return; } // 反转字符串 for (i = 0; i < (strlen(binary) / 2); i++) { char temp = binary[i]; binary[i] = binary[strlen(binary) - i - 1]; binary[strlen(binary) - i - 1] = temp; } printf("Reversed binary representation of the number is: %s\n", binary); } int main() { int decimal; printf("Enter a decimal integer: "); scanf("%d", &decimal); reverse_binary(decimal); return 0; } ``` 在这个程序中,我们首先定义了一个字符组`binary`来存储二进制字。然后,我们在`reverse_binary`函中用while循环将输入十进制不断除以2取余,并将每个余(用1或0表示)存入组。接着,如果组的最前面是0并且只有一个元素,那么就是0,不需要输出。否则,我们将组反转并打印。 在`main`函中,我们从用户那里获取输入十进制,并调用`reverse_binary`函进行处理。 如果你运行这个程序,只需按照提示输入一个十进制整数,它就会输出的倒序二进制表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值