2301_80988946 2023-11-09 11:14 采纳率: 0%
浏览 11

C语言求解想不到办法

编写一个程序实现二进制的加法运算。只考虑八位以内二进制数的加法不使用数组

  • 写回答

3条回答 默认 最新

  • 山亦玉 2023-11-09 11:44
    关注
    #include <stdio.h>
    
    int checkBinary(int num) {
        while (num != 0) {
            if (num % 10 > 1) {
                return 0;
            }
            num = num / 10;
        }
        return 1;
    }
    
    int main() {
        int num1, num2;
        int carry, result;
    
        printf("请输入第一个二进制数: ");
        scanf("%d", &num1);
        if (!checkBinary(num1)) {
            printf("错误:输入的不是二进制数\n");
            return 1;
        }
    
        printf("请输入第二个二进制数: ");
        scanf("%d", &num2);
        if (!checkBinary(num2)) {
            printf("错误:输入的不是二进制数\n");
            return 1;
        }
    
        while (num2 != 0) {
            // 计算进位
            carry = (num1 & num2) << 1;
            // 计算结果
            result = num1 ^ num2;
            // 更新数值
            num1 = result;
            num2 = carry;
        }
    
        printf("二进制数 %d 和 %d 的和为: %d\n", num1, num2, result);
    
        return 0;
    }
    

    这个程序首先读取两个二进制数。然后,它使用一个函数 checkBinary 来检查输入的数是否是有效的二进制数。如果输入的数不是二进制数,程序会打印出错误信息并退出。如果输入的数是二进制数,程序会继续进行加法运算。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月9日