在没有模运算符的情况下在Java中测试偶数

Jav*_*irl 8 java syntax logic bit-manipulation

我怎么用Java做这个?如果最后一位数是偶数,则查找数字是否可被2整除.(0,2,4,6,8)示例:128是,129不是

dre*_*ash 16

使用按位运算 and

if( (number&1) == 0)
Run Code Online (Sandbox Code Playgroud)

按位AND运算符&

&(按位AND)运算符将其第一个操作数的每个位与第二个操作数的相应位进行比较.如果两个位均为1,则结果的相应位设置为1.否则,它将相应的结果位设置为0().

二进制格式中,偶数的最低有效位等于零.知道这一点并使用&运算符,你可以发现它是否是偶数.

因此它需要一个数字..abcdy并且与... 00001比较,如果y为零而不是..abcdy&... 00001也是零,因此是偶数.


Jig*_*shi 5

通过使用按位运算符,查看最右边的位是否为1然后不是

执行逻辑和(例如)

yourNumber & 1
Run Code Online (Sandbox Code Playgroud)


Tom*_*icz 5

检查最低有效位:

boolean even = (x & 1) == 0;
Run Code Online (Sandbox Code Playgroud)

LSB 0用于偶数和1奇数,就像十进制数一样,最低有效数字0是否可以被分割10.