我将如何在 Java 中做到这一点?判断一个数是否能被 2 整除,如果最后一位是偶数。(0,2,4,6,8) 示例:128 是,129 不是
问问题
3836 次
7 回答
16
使用按位运算and
if( (number&1) == 0)
按位与运算符 &
&(按位与)运算符将其第一个操作数的每个位与第二个操作数的相应位进行比较。如果两个位都是 1,则结果的相应位设置为 1。否则,它将相应的结果位设置为 0(源)。
在二进制格式中,偶数的最低有效位为零。知道这一点并使用 & 运算符,您可以找出它是否是偶数。
所以它需要一个数字 ..abcdy 并与 ..00001 进行比较,如果 y 为零,则 ..abcdy & ..00001 也为零,因此是偶数。
于 2012-12-08T21:22:10.047 回答
6
通过使用按位运算符查看最右边的位是否为 1 然后不是
执行逻辑与(例如)
yourNumber & 1
于 2012-12-08T21:20:27.677 回答
6
检查最低有效位:
boolean even = (x & 1) == 0;
LSB0
用于偶数和1
奇数,就像十进制数的最低有效位是0
如果它可以被 整除10
。
于 2012-12-08T21:21:52.323 回答
2
if((n|1)==n)
System.out.println("odd");
else
System.out.println("even");
原因:如果 LSB 为 1,则数字为奇数,否则为奇数。当 n|1 完成时,奇数的 LSB 保持不变,因此结果数不变,而偶数的 LSB 变为 1,从而改变了数字。
于 2015-12-23T11:47:45.897 回答
0
我的方式 ;)
公共类 Even_Odd {
/**
* @param args
*/
public static void main(String[] args)
{
int val=550;
// TODO Auto-generated method stub
while(val>=0)
{
if(val==1)
{
System.out.println("Odd Number");
}
else if(val==0)
{
System.out.println("Even Number");
}
val=val-2;
// System.out.println(val);
}
}
}
于 2013-12-23T06:44:51.140 回答
0
将数字除以2并乘以答案2,如果您得到原始数字,则该数字为“偶数”,否则该数字为“奇数”
public class EvenOrOdd
{
public static void main(String args[])
{
int value = 129;
if((value/2)*2==value)
{
System.out.println("The Given Number \""+value+"\" is Even");
}
else
{
System.out.println("The Given Number \""+value+"\" is Odd");
}
}
}
于 2016-08-12T06:11:03.513 回答
0
import java.io.*;
import java.util.*;
public class CheckNumber{
public static void main(String... args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the number to check even or odd");
int number=Integer.parseInt(br.readLine());
String temp=number+""; //convert number to string
char ch=temp.charAt(temp.length()-1); //get last character
temp=ch+"";
if(temp.equals("0") || temp.equals("2") || temp.equals("4") || temp.equals("6") || temp.equals("8")) //check last number is even
System.out.println("Number is even");
else
System.out.println("Number is odd");
}
}
于 2017-01-14T19:18:30.563 回答