java異或運(yùn)算符 java中異或是怎樣算的?
java中異或是怎樣算的?異或運(yùn)算(^)基于二進(jìn)制數(shù)據(jù)。也就是說,當(dāng)代碼中使用異或運(yùn)算時,這兩個條件在運(yùn)算前會被轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)。如果外國同一個地方的值相同(均為0或均為1),則為0;如果值不同(一個
java中異或是怎樣算的?
異或運(yùn)算(^)基于二進(jìn)制數(shù)據(jù)。也就是說,當(dāng)代碼中使用異或運(yùn)算時,這兩個條件在運(yùn)算前會被轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)。如果外國同一個地方的值相同(均為0或均為1),則為0;如果值不同(一個為0,一個為1),則為1。例如,int a=4,int b=6,int c=a^b//c的值是a和b的異或。過程1和a的二進(jìn)制值是0000 0100//,因為高位相同,所以低8位被刪除。2異或后B的二進(jìn)制值為0000 0110 3,0000 0010//結(jié)果為2
怎樣計算異或校驗和?
1)編碼.ASCII.GetBytes(……)獲取字節(jié)數(shù)組,數(shù)組中的每個元素都以二進(jìn)制格式存儲在計算機(jī)內(nèi)部(實際上,計算機(jī)內(nèi)存中所有類型的數(shù)據(jù)都以二進(jìn)制格式存儲!)
2)您可以用十進(jìn)制或十六進(jìn)制來表示或輸出這些二進(jìn)制數(shù)據(jù)
3)C的異或運(yùn)算基于二進(jìn)制位運(yùn)算
我不知道您的異或校驗和的具體算法。
以下是在通信過程中使用XOR查找校驗和最常用的方法://S是要檢查的數(shù)據(jù)(字符串)T字符串S=“ABCDEF”T//獲取與S對應(yīng)的字節(jié)數(shù)組(tbyte[]b)=編碼.ASCII.GetBytes(s) T//xorresult存儲驗證結(jié)果。注意:初始值為第一個元素值!Tbyte xorresult=B[0][T//查找異或校驗和。注意:XOR操作從第二個元素(int i=1 i)開始ltb.長度運(yùn)算后,xorresult是XOR校驗和的結(jié)果!