好家伙288 2024-11-22 16:06 采纳率: 0%
浏览 47

十进制转二进制(c语言)

怎么样才能输入若干个数然后输出若干个对应的数啊,我只会输入一个数然后输出对应的数😩

img

  • 写回答

1条回答 默认 最新

  • 趣享先生 优质创作者: 编程框架技术领域 2024-11-22 16:15
    关注

    该回答参考ChatGPT,由吾为汝整理提供如若有用,还请题主采纳!

    你可以编写一个 C 语言程序,使用一个函数将输入的十进制整数转换为二进制字符串,并在主函数中处理多个输入。下面是一个示例代码,展示了如何实现这个功能:

    #include <stdio.h>
    #include <stdlib.h>
    
    // 函数:将整数转换为二进制字符串
    char* decimalToBinary(int n) {
        // 计算二进制位数
        int bits = sizeof(n) * 8; // 计算整数的位数
        char* binary = (char*)malloc(bits + 1); // 分配内存
        if (binary == NULL) {
            return NULL; // 内存分配失败
        }
    
        binary[bits] = '\0'; // 设置字符串结束符
        for (int i = bits - 1; i >= 0; i--) {
            binary[i] = (n & 1) ? '1' : '0'; // 逐位转换
            n >>= 1; // 右移一位
        }
    
        // 找到第一个 '1' 的位置
        char* start = binary;
        while (*start == '0' && start < binary + bits - 1) {
            start++; // 跳过前导零
        }
    
        return start; // 返回指向二进制字符串的指针
    }
    
    int main() {
        int number;
        printf("请输入若干个整数(以空格分隔,输入非数字结束):\n");
    
        // 循环读取输入
        while (scanf("%d", &number) == 1) {
            char* binary = decimalToBinary(number);
            printf("%s\n", binary); // 输出二进制形式
        }
    
        return 0;
    }
    

    代码说明:

    1. decimalToBinary 函数

      • 接受一个整数 n,并将其转换为二进制字符串。
      • 使用位运算逐位提取二进制位,并将其存储在字符数组中。
      • 返回指向第一个非零位的指针,以避免输出前导零。
    2. 主函数

      • 使用 scanf 循环读取用户输入的整数,直到输入非数字字符。
      • 对每个输入的整数调用 decimalToBinary 函数,并输出其二进制形式。

    编译和运行:

    将代码保存为 decimal_to_binary.c,然后使用以下命令编译并运行:

    gcc -o decimal_to_binary decimal_to_binary.c
    ./decimal_to_binary
    

    输入示例:

    15 16 17 63 64 65
    

    输出示例:

    1111
    10000
    10001
    111111
    1000000
    1000001
    

    这样,你就可以输入多个整数,并得到它们对应的二进制形式了。如果你有其他问题或需要进一步的帮助,请告诉我!

    评论

报告相同问题?

问题事件

  • 创建了问题 11月22日