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、

 

posted @ 2023-05-15 16:57  胡桃里等你  阅读(1437)  评论(0)    收藏  举报