为什么Matlab的`bitxor(1000,10)`给出了994?

时间:2017-03-11 15:42:29

标签: matlab xor

我知道bitxor是逐位加法模2,所以不是bitxor(1000,10)应该给1010吗?为什么它给我994?

1 个答案:

答案 0 :(得分:5)

问题是1000和10不是二进制数。 在十进制中,0b1000将是8而0b10将是2。 试试这个:

bitxor(8,2)
ans = 10

现在你可能认为它错了,但ans也不是二进制,它的十进制10等于1010二进制。

编辑:让它按照你想要的方式运行试试这个:

dec2bin(bitxor(bin2dec('1000'), bin2dec('10'))
ans = 1010