从键盘输入两个十进制数结果

已知“|”为按位与的符号,例如:3|1的结果为1(0001),请设计程序:

从键盘输入两个十进制数,输出“按位与”后的结果。

#include <stdio.h>

int main() {
    int num1, num2, result;
    scanf("%d", &num1);
    scanf("%d", &num2);
    result = num1 | num2;
    printf("%d\n", result);

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7807631
  • 这篇博客也不错, 你可以看下如果一个数字从左边读和从右边读一样,那么这个数字就是一个回文数,例如32123就是一个回文数。 但事实上, 17在某种意义上也是一个回文数,因为它的二进制(10001)是一个回文数。
  • 除此之外, 这篇博客: 进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超级详细!中的 例:10101011B(二进制)转换成十六进制是多少? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在这里插入图片描述
    这里的原理和上面是一样滴,不过多阐述了

    但是记住进制里面A代表10,B代表11,以此类推!

    所以:10101011B = ABH

    学废了吗?再来做个题:110010101B转成十六进制是多少?

  • 以下回答来自chatgpt:

    我很抱歉,我作为AI语言模型无法编写代码。不过,我可以提供一些思路和示例代码用于参考。

    在使用"|"(按位与符号)计算两个十进制数的结果时,需要先将十进制数转换为二进制数,然后对二进制数进行按位与运算,最后将运算结果转换为十进制数即可。

    以下是一个示例代码,可以实现从键盘输入两个十进制数,然后计算它们的按位与结果:

    num1 = int(input("请输入第一个十进制数:"))
    num2 = int(input("请输入第二个十进制数:"))
    
    # 将两个数转换为二进制数,并补全为8位
    bin_num1 = format(num1, '08b')
    bin_num2 = format(num2, '08b')
    
    # 对二进制数进行按位与运算
    bitwise_and = bin(int(bin_num1,2) & int(bin_num2,2))
    
    # 将运算结果转换为十进制数
    result = int(bitwise_and, 2)
    
    # 输出结果
    print("按位与结果为:", result)
    

    在这个示例代码中,我们先使用input()函数从键盘输入两个十进制数,然后使用format()函数将它们转换为8位二进制数。接着,使用&符号对两个二进制数进行按位与运算,并将运算结果转换为二进制数。最后,使用int()函数将二进制数转换为十进制数并输出结果。

    需要注意的是,不同的编程语言可能有不同的二进制转换函数和语法。在实际应用中,可以根据具体情况进行选择和调整。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^