gpt4 book ai didi

c - 两个二进制数异或的问题

转载 作者:行者123 更新时间:2023-12-01 12:22:25 25 4
gpt4 key购买 nike

我有一个从 0 到 16 的数字列表,我想用 0110 对它们的二进制形式进行异或。

我已将数字放在 int j 中,并将通过一个循环到达每个数字。以下是我的代码行。

j2 = j^(binaryToDecimal(0110));

但是,我无法得到我想要的结果。例如 0 XOR 0110 给我的结果是 16 而不是 0110B = 6。我在这里错过了什么?

如果需要,这是我的二进制到十进制代码:

long binaryToDecimal(long n) {
int remainder;
long decimal = 0, i=0;
while(n != 0) {
remainder = n%10;
n = n/10;
decimal = decimal + (remainder*pow(2,i));
++i;
}
return decimal;
}

最佳答案

您的代码的问题在于,当您将“0110”作为参数传递时,编译器会将其视为八进制数,即 0110 ==> 72(十进制)。

相反,在参数中传递“110”。你会得到预期的结果。

关于c - 两个二进制数异或的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43038881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com