java 判断奇数和偶数
1、最简单正常思维方式
package com.dodo;
public class Test { public static void main(String[] args) { StringBuffer stringBuffer = new StringBuffer("奇数:"); //同步锁,线程安全,默认长度16 StringBuilder stringBuilder = new StringBuilder("偶数:"); for (int i = -100; i <= 100; i++) { if (i % 2 == 1) { //不能被2整除即为奇数 stringBuffer.append(i).append("、"); } else { stringBuilder.append(i).append("、"); } } System.out.println(stringBuffer); System.out.println(stringBuilder); } }
2、从计算机角度进行二进制计算
package com.dodo;
public class Test {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("奇数:"); //同步锁,线程安全,默认长度16
StringBuilder stringBuilder = new StringBuilder("偶数:");
for (int i = -100; i <= 100; i++) {
if (i >> 1 << 1 != i) {
stringBuffer.append(i).append("、");
} else {
stringBuilder.append(i).append("、");
}
}
System.out.println(stringBuffer);
System.out.println(stringBuilder);
}
}
说明:>>右移运算符;<<左移运算符。
如果是偶数右移一位(即除以2)得到的结果为原来的一半,再经过左移一位(即乘以2)得到的结果还是原来的数;
如果是奇数右移一位(即除以2)得到的结果为原来的数减1的一半,再经过左移一位(即乘以2)得到的结果只会比原来的数小
3、通过位运算判断
package com.dodo;
public class Test {
public static void main(String[] args) {
StringBuffer stringBuffer = new StringBuffer("奇数:"); //同步锁,线程安全,默认长度16
StringBuilder stringBuilder = new StringBuilder("偶数:");
for (int i = -100; i <= 100; i++) {
if ((i & 1) == 1) {//按位与,两个数的二进制同为1,结果才为1,否则为0
stringBuffer.append(i).append("、");
} else {
stringBuilder.append(i).append("、");
}
}
System.out.println(stringBuffer);
System.out.println(stringBuilder);
}
}
说明:&:按位与运算。两个数的二进制同为1,结果才为1,否则为0;由于1的二进制除了末尾是1,其余全是0,故任何数&1之后,除最后位外其余位皆为0。而奇数的末尾是1,偶数的末尾是0,故奇数&1后还是1,偶数&1后是0。
以上三种方式打印出的结果如下:
奇数:-99、-97、-95、-93、-91、-89、-87、-85、-83、-81、-79、-77、-75、-73、-71、-69、-67、-65、-63、-61、-59、-57、-55、-53、-51、-49、-47、-45、-43、-41、-39、-37、-35、-33、-31、-29、-27、-25、-23、-21、-19、-17、-15、-13、-11、-9、-7、-5、-3、-1、1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31、33、35、37、39、41、43、45、47、49、51、53、55、57、59、61、63、65、67、69、71、73、75、77、79、81、83、85、87、89、91、93、95、97、99、 偶数:-100、-98、-96、-94、-92、-90、-88、-86、-84、-82、-80、-78、-76、-74、-72、-70、-68、-66、-64、-62、-60、-58、-56、-54、-52、-50、-48、-46、-44、-42、-40、-38、-36、-34、-32、-30、-28、-26、-24、-22、-20、-18、-16、-14、-12、-10、-8、-6、-4、-2、0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62、64、66、68、70、72、74、76、78、80、82、84、86、88、90、92、94、96、98、100、

浙公网安备 33010602011771号