本题要求实现一个函数,将非负整数n转换为二进制后输出。

6-4 十进制转换二进制 (分数20)

函数接口定义:

void dectobin( int n );

函数dectobin应在一行中打印出二进制的n。建议用递归实现。

裁判测试程序样例:

#include <stdio.h>

void dectobin( int n );

int main()
{
    int n;
    
    scanf("%d", &n);
    dectobin(n);
    
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

1010

所编写的函数代码如下:

void dectobin( int n )
{
    int r=0;
    if(n==0)
        printf("0");
    else if(n==1)
        printf("1");
    else
    {
       dectobin(n/2);
        r=n%2;
        printf("%d",r);
    }
}

把十进制数转化为二进制,例如:

14——>14/2=7.....0

                7/2=3.....1

                3/2=1.....1

                1/2=0.....1  余下一个1

所以十进制数 14 转化为二进制数为 1110

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用Python内置函数bin()来实现非负整数n转换二进制的功能,例如: def to_binary(n): return bin(n) print(to_binary(10)) # 输出:b101 其中,bin()函数返回的是一个字符串,前两个字符为“b”,表示这是一个二进制数。如果需要去掉前缀“b”,可以使用字符串切片操作,例如: def to_binary(n): return bin(n)[2:] print(to_binary(10)) # 输出:101 这样就可以得到一个不带前缀的二进制字符串了。 ### 回答2: 这道题目要求我们实现一个函数,将非负整数n转换二进制输出。首先要知道二进制的概念,二进制又称作“二进位制”,它是计算机科学中最基础的概念之一。 二进制是只有0和1两个数字,在计算机中,所有的数据都是以二进制的形式存储的。因此,转换一个非负整数n为二进制,只需不断的对2取模,然后记录下来余数,最后将余数翻转就是这个非负整数二进制表示。 具体的转换步骤如下: 1. 不断对2取模,记录下来余数 2. 将余数翻转,就是该非负整数二进制表示。 下面是一个实现转换的Python函数: ``` def decimalToBinary(n): # 判断特殊情况 if n==0: return 0 # 定义一个空列表,用于存储二进制数的每一位 binary = [] # 将n不断对2取余并添加到binary列表中 while n > 0: r = n%2 n = n//2 binary.append(r) # 将binary列表翻转并拼接成一个字符串 binaryStr = "".join([str(x) for x in binary[::-1]]) # 将二进制字符转换整数返回 return int(binaryStr) ``` 运行该函数,将一个非负整数n作为参数,就可以得到该非负整数二进制表示了。 ### 回答3: 二进制是一种数制,只包含0和1的数字系统。与我们平常所使用的十进制不同,二进制只有两个数码(0和1),但是在计算机和电子技术领域广泛应用。因此,将非负整数n转换二进制是非常重要的。 这道题目要求我们实现一个函数,将非负整数n转换二进制输出实现这个函数的方法有很多种,这里给出两种简单的实现方式。 方法一: 我们可以利用位运算符来实现。位运算符包括与(&)、或(|)、非(~)、异或(^)等。将非负整数n不断地与1作“与”运算,即可得到它的二进制表示。例如,10的二进制是1010,它与1进行“与”运算后,得到0;再把10右移一位,即得到101。不断重复这个过程,直到n变为0为止。 具体实现方法如下: ``` void decimalToBinary(int n) { int binary[32]; int i = 0; while (n > 0) { binary[i++] = n & 1; // 与操作 n = n >> 1; // 右移操作 } for (int j = i - 1; j >= 0; j--) { cout << binary[j]; // 逆序输出二进制数 } } ``` 方法二: 另一种实现方法是使用递归。我们可以用n除以2的余数来表示二进制数的最右边一位,然后将n除以2并递归调用函数,直到n变为0为止。递归函数的基准情形是n等于0,此时递归结束。 具体实现方法如下: ``` void decimalToBinary(int n) { if (n == 0) { return; } else { decimalToBinary(n / 2); cout << n % 2; } } ``` 无论使用哪一种方法,最终结果应该都是非负整数n的二进制表示。这个函数可以用于计算机科学、电子技术、通信工程和数学等领域的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值