概述
在臨川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站建設(shè),臨川網(wǎng)站建設(shè)費用合理。
i = 14,異或算法轉(zhuǎn)換二進制,同則取0異則取1;
解析
異或是一種基于二進制的位運算,用符號XOR或者^表示,其運算法則是對運算符兩側(cè)數(shù)的每一個進制位同值則取0,異值則取1.
簡單理解就是不進位加法,如1+1=0,0+0=0,1+0=1.
For example:
3^5 = 6
轉(zhuǎn)成二進制后就是 0011 ^ 0101 二號位和三號位都是異值取1 末尾兩個1同值取零,所以3^5 = 0110 = 6
而 i = 50 ,j = 60;
所以:
i 的二進制 = 00110010
j 的二進制 = 00111100
同位相同取0,不同取1所以得出來的值為00001110
i = i ^ j;所以i = 00001110 = 14
拓展內(nèi)容
異或運算符
性質(zhì)
1、交換律?
2、結(jié)合律(即(a^b)^c == a^(b^c))?
3、對于任何數(shù)x,都有x^x=0,x^0=x?
4、自反性 A XOR B XOR B = A xor 0 = A
異或運算最常見于多項式除法,不過它最重要的性質(zhì)還是自反性:A XOR B XOR B = A,即對給定的數(shù)A,用同樣的運算因子(B)作兩次異或運算后仍得到A本身。這是一個神奇的性質(zhì),利用這個性質(zhì),可以獲得許多有趣的應(yīng)用。 例如,所有的程序教科書都會向初學(xué)者指出,要交換兩個變量的值,必須要引入一個中間變量。但如果使用異或,就可以節(jié)約一個變量的存儲空間: 設(shè)有A,B兩個變量,存儲的值分別為a,b,則以下三行表達式將互換他們的值 表達式 (值) :?
A=A XOR B (a XOR b)?
B=B XOR A (b XOR a XOR b = a)?
A=A XOR B (a XOR b XOR a = b)
#code:
google面試題的變形:一個數(shù)組存放若干整數(shù),一個數(shù)出現(xiàn)奇數(shù)次,其余數(shù)均出現(xiàn)偶數(shù)次,找出這個出現(xiàn)奇數(shù)次的數(shù)?
xorEn(dest, dest2);}/*** 異或的一個特點: a^b = c c^b = a * 所以簡單點,這里的加解密都用一個函數(shù)就行了 * @param src * @param dest * @throws Exception*/public static void xorEn(File src, File dest) throws Exception { // 文件不存在或為文件夾就不判斷了 FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(dest); byte[] bs = new byte[1024]; int len = 0; while ((len = fis.read(bs)) != -1) { for (int i = 0; i len; i++) {
int 32位,補碼存儲
int?a?=?51;
int?b?=?-16;
System.out.println("51??="?+?Integer.toBinaryString(a));
System.out.println("-16?="?+?Integer.toBinaryString(b));
int?c?=?a^b;
System.out.println("異或????="?+?Integer.toBinaryString(c));
System.out.println("即????????="?+?c);
51 ?=110011
-16 =11111111111111111111111111110000
異或 ? ?=11111111111111111111111111000011
原碼為1000。。。111101
即 ? ? ? ?=-61