美文网首页
判断一个整数是否是奇数

判断一个整数是否是奇数

作者: lconcise | 来源:发表于2019-03-05 11:22 被阅读0次

    使用位运算符,这样做的目的是为了节约内存开销和加快计算效率

    关于位运算符的两个例子。

    判断一个整数是否是奇数

    public class MainDemo {
    
        public static void main(String[] args) {
            // 测试
            if (isOddNumber5(-7)) {
                System.out.println("奇数");
            } else {
                System.out.println("偶数");
            }
        }
    
        /**
         * 该解法没有考虑到负数
         * @param number
         * @return
         */
        public static Boolean isOddNumber(int number) {
            return number % 2 == 1;
        }
    
        /**
         * 把负数考虑进去
         * @param number
         * @return
         */
        public static Boolean isOddNumber2(int number) {
            return number % 2 == 1 || number % 2 == -1;
        }
    
        /**
         * 逆向思维
         * @param number
         * @return
         */
        public static Boolean isOddNumber3(int number) {
            return number % 2 != 0;
        }
    
        /**
         * 位运算符 移位
         * @param number
         * @return
         */
        public static Boolean isOddNumber4(int number) {
            return number >> 1 << 1 != number;
        }
    
        /**
         *  位运算符 与运算
         * @param number
         * @return
         */
        public static Boolean isOddNumber5(int number) {
            return (number & 1) == 1;
        }
    }
    

    请实现两个整数变量的交换

        public static void main(String[] args) {
    
            int a = 3;
            int b = 5;
    
            /**
             * 添加变量temp
             */
            System.out.println(a + " " + b);
            int temp = a;
            a = b;
            b = temp;
            System.out.println(a + " " + b);
    
            /**
             * 相加
             */
            System.out.println(a + " " + b);
            a = a + b;
            b = a - b;
            a = a - b;
            System.out.println(a + " " + b);
    
            /**
             * 位运算符,一个数据针对另一个数据位异或两次,该数不变
             */
            System.out.println(a + " " + b);
            a = a ^ b;
            b = a ^ b;
            a = a ^ b;
            System.out.println(a + " " + b);
    
            /**
             * 加法
             */
            System.out.println(a + " " + b);
            a = (a + b) - (b = a);
            System.out.println(a + " " + b);
        }
    

    相关文章

      网友评论

          本文标题:判断一个整数是否是奇数

          本文链接:https://www.haomeiwen.com/subject/zbdnuqtx.html