我将如何在 Java 中执行此操作?判断一个数是否能被 2 整除,最后一位数字是否为偶数。 (0,2,4,6,8) 示例:128 是,129 不是
使用按位运算
and
if( (number&1) == 0)
按位与运算符 &
&(按位与)运算符将其第一个操作数的每一位与 第二个操作数的相应位。如果两位都是 1,则 结果的相应位设置为 1。否则,设置 相应的结果位为 0(源)。
在二进制格式中,偶数的最低有效位等于零。知道这一点并使用 & 运算符,您可以找出它是否为偶数。
因此,它需要一个数字 ..abcdy 并与 ..00001 进行比较,如果 y 为零,则比 ..abcdy & ..00001 也为零,因此是偶数。
使用按位运算符查看最右边的位是否为 1 则不是
执行逻辑与(例如)
yourNumber & 1
检查最低有效位:
boolean even = (x & 1) == 0;
LSB 对于偶数为
0
,对于奇数为 1
,就像十进制数一样,如果可被 0
整除,则最低有效位为 10
。
if((n|1)==n)
System.out.println("odd");
else
System.out.println("even");
原因:LSB为1时为奇数,否则为偶数。当 n|1 完成时,奇数的 LSB 保持不变,因此结果数字不会改变,而偶数的 LSB 变为 1,从而改变数字。
我的方式;)
公共类 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);
}
}
}
将数字除以 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");
}
}
}
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");
}
}
Scanner sc =new Scanner(System.in);
int num=sc.nextInt();
int rem=0;
boolean result=(rem==0);
if (result==true) {
System.out.println("Even");
} else {
System.out.println("Odd");
}