n&1和n&0x01的区别?

img


这个代码用与1进行位运算来判奇偶,我查过了0x01是16进制的1,那为什么不直接用1表示呢?位运算好像需要都化成二进制来进行运算吧。我想知道用0x01的目的或好处。
感谢回答!

没区别。
写成16进制的形式,比较方便转换2进制。比如0xAB,一眼看出就是0b10101011,写成十进制的171就不好转二进制

没有区别,因为1=0x01

从功能角度是一样的,从代码可读性角度,0x01更好。

数值上是没有区别的,1是10进制表示,0x01是16进制表示,它们都是2进制的0000 0001
但是0x01可读性上更好一些,能够让你一眼看出这是在做2进制的与运算
否则写成n & 1很容易和n && 1搞混掉,1容易被理解成bool量