按位異或(^)

import org.junit.Test;

/**
 * ^ : 按位異或
 * ------------------------------------
 * 按位異或,比較每一個操做數的二進制位,相同置爲0,不一樣置爲1
 */
public class Demo {

    @Test
    public void testName() throws Exception {
        System.out.println(101 ^ 101); // 0
        System.out.println(112 ^ 112); // 0
        System.out.println(101 ^ 112); // 21
        System.out.println(112 ^ 101); // 21

        /*
         * 101 ^ 112的值爲何是21?
         * 邏輯:按位異或,比較每一個操做數的二進制位,相同置爲0,不一樣置爲1
         * -------------------------------------
         * 0110 0101    // 101
         * 0111 0000    // 112
         * ----------
         * 0001 0101    // 21
         */
        System.out.println(Integer.toBinaryString(101)); // 1100101
        System.out.println(Integer.toBinaryString(112)); // 1110000
        System.out.println(Integer.toBinaryString(21)); // 10101
    }
}
相關文章
相關標籤/搜索