PHP中的二进制操作问题
decbin()将十进制转换为二进制, 同样1或0=1 所以,decbin(0)^decbin(1)应该给我1,但它是什么也不给我。。。。为什么? 但是,如果我在做其他的操作,结果是正确的PHP中的二进制操作问题,php,bitwise-operators,Php,Bitwise Operators,decbin()将十进制转换为二进制, 同样1或0=1 所以,decbin(0)^decbin(1)应该给我1,但它是什么也不给我。。。。为什么? 但是,如果我在做其他的操作,结果是正确的 decbin(0)| decbin(1)=>1 decbin(0)和decbin(1)=>0 decbin(1)和decbin(1)=>1 Decbin返回一个字符串,并且不在字符串上定义按位运算符 编辑问题后将我的评论编辑到答案中: 未定义意味着它们在字符串上没有意义,也不是说它不会给出一个看似正确的答案。
Decbin返回一个字符串,并且不在字符串上定义按位运算符 编辑问题后将我的评论编辑到答案中:
未定义意味着它们在字符串上没有意义,也不是说它不会给出一个看似正确的答案。尝试一些其他的价值观,我很确定它不会起作用。你需要做的是对整数进行运算,一旦你完成了所有的计算,就可以用decbin得到字符串表示。有关二进制文字表示,请参见另一个答案。Decbin返回一个字符串,并且不在字符串上定义按位运算符 编辑问题后将我的评论编辑到答案中:
未定义意味着它们在字符串上没有意义,也不是说它不会给出一个看似正确的答案。尝试一些其他的价值观,我很确定它不会起作用。你需要做的是对整数进行运算,一旦你完成了所有的计算,就可以用decbin得到字符串表示。有关二进制文字表示,请参见另一个答案。在PHP 5.4+中,您可以通过
0b
前缀使用二进制语法:
$res = 0b00 ^ 0b01
编辑:结果是正确的。您给出的值将前后转换为字符串,然后再转换为数字。尝试使用较大的数字,它将失败。位运算符不会在字符串上失败(应该如此),因为它们隐式地转换为数字
您可以始终对普通整数执行该操作,然后仅以二进制显示输出:
$res = 1 ^ 0;
echo decbin($res);
这也适用于:
$res = 15 ^ 7;
echo decbin($res);
在PHP 5.4+中,您可以通过
0b
前缀使用二进制语法:
$res = 0b00 ^ 0b01
编辑:结果是正确的。您给出的值将前后转换为字符串,然后再转换为数字。尝试使用较大的数字,它将失败。位运算符不会在字符串上失败(应该如此),因为它们隐式地转换为数字
您可以始终对普通整数执行该操作,然后仅以二进制显示输出:
$res = 1 ^ 0;
echo decbin($res);
这也适用于:
$res = 15 ^ 7;
echo decbin($res);
但其他二进制运算的答案是正确的。。。只有带xor的prblm!!未定义意味着它们在字符串上没有意义,也不是说它不会给出一个看似正确的答案。尝试一些其他的价值观,我很确定它不会起作用。你需要做的是对整数进行运算,一旦你完成了所有的计算,就可以用decbin得到字符串表示。请参阅二进制文字表示的其他答案。但其他二进制操作的答案是正确的。。。只有带xor的prblm!!未定义意味着它们在字符串上没有意义,也不是说它不会给出一个看似正确的答案。尝试一些其他的价值观,我很确定它不会起作用。你需要做的是对整数进行运算,一旦你完成了所有的计算,就可以用decbin得到字符串表示。请参阅二进制文字表示的另一个答案。