VB語言中的XOR是一個(gè)按位異或運(yùn)算符
十年的吐魯番網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整吐魯番建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“吐魯番網(wǎng)站設(shè)計(jì)”,“吐魯番網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
例如:print 65 xor 120 在VB程序的立即窗口里顯示是57 將65和120 換成二進(jìn)制,就是1000001和1111000,然后,將它們右端對(duì)齊,進(jìn)行逐位的異或運(yùn)算:
1 0 0 0 0 0 1
1 1 1 1 0 0 0 (xor
————————————————————
0 1 1 1 0 0 1
111001換成十進(jìn)制,就是57啦
規(guī)則就是:
相同得0,不同得1
xor表示雙重作用,
textstyle = textstyle Xor FontStyle.Italic
就是說,在原來的基礎(chǔ)上實(shí)現(xiàn)雙重功能結(jié)合,比如你原來的字體是 加粗的,在運(yùn)行這句語句后,就實(shí)驗(yàn)了加粗和傾斜的功能了,如果不用xor,實(shí)現(xiàn)就很麻煩了
注意只能對(duì)整型執(zhí)行按位運(yùn)算。浮點(diǎn)值必須轉(zhuǎn)換為整型后,才能執(zhí)行按位運(yùn)算。按位運(yùn)算采用二進(jìn)制(以 2 為基)形式計(jì)算兩個(gè)整數(shù)值。它們比較對(duì)應(yīng)位置上的位,然后基于比較的結(jié)果賦值。下面的示例演示了 And 運(yùn)算符。復(fù)制Dim x As Integerx = 3 And 5 前面的示例將 x 的值設(shè)置為 1。發(fā)生這種情況的原因如下:這些值以二進(jìn)制形式處理:二進(jìn)制格式的 3 為 011二進(jìn)制格式的 5 為 101And 運(yùn)算符比較這些二進(jìn)制表示方式,一次比較一個(gè)二進(jìn)制位置(位)。如果給定位置的兩個(gè)位都為 1,則將 1 放在結(jié)果中的該位置。如果任何一個(gè)位是 0,則將 0 放在結(jié)果中的該位置。在前面的示例中,按如下所示計(jì)算結(jié)果:011(二進(jìn)制格式的 3)101(二進(jìn)制格式的 5)001(二進(jìn)制格式的計(jì)算結(jié)果)計(jì)算結(jié)果以十進(jìn)制形式處理。值 001 是 1 的二進(jìn)制表示形式,因此 x = 1。除了在任何一個(gè)比較位是 1 或兩個(gè)比較位都是 1 的情況下將 1 賦予結(jié)果位以外,按位 Or 運(yùn)算與此類似。Xor 在比較的位正好只有一個(gè)是 1(而不是兩者都是 1)時(shí)將 1 賦給結(jié)果位。Not 采用單個(gè)操作數(shù)并反轉(zhuǎn)所有位(包括符號(hào)位),然后將該值賦予結(jié)果。這意味著,對(duì)于有符號(hào)正數(shù),Not 始終返回負(fù)值,而對(duì)于負(fù)數(shù),Not 始終返回正值或零。AndAlso 和OrElse 運(yùn)算符不支持按位運(yùn)算。 追問: 好復(fù)雜啊...還是不會(huì),還有整數(shù)怎么轉(zhuǎn)換為二進(jìn)制數(shù)? 回答: 為什么一定要用位運(yùn)算呢,你那個(gè)乘法只能通過左移操作符“ ”來進(jìn)行,而左移一次代表乘以2,要是乘以一個(gè)小數(shù),就必須先化成2的n次方,不夠再用加減法調(diào)整,很麻煩啊,沒必要用位運(yùn)算啊。。。 追問: 因?yàn)槲乙M(jìn)行大量的運(yùn)算,但速度要快,所有用位運(yùn)算...我也不想啊.. 回答: 那就不該用VB 啊,c/c++在執(zhí)行效率上是沒話說的。 追問: 問題就是不會(huì)嘛... 回答: 那你上csdn上發(fā)帖效果應(yīng)該不錯(cuò) 追問: CSDN發(fā)了,我發(fā)在高性能運(yùn)算,沒人... 回答: 耐心一些,或者你應(yīng)該發(fā)到VB.NET論壇那里。。。
(1)異或Xor
當(dāng)兩個(gè)表達(dá)式的值不同時(shí)(即一個(gè)為True,另一個(gè)為FALSE),其結(jié)果為True;當(dāng)兩個(gè)表達(dá)式的值相同(都為True或都為False)時(shí),結(jié)果為False。也就是“異"則“真”,“同”則“假”。
(2)邏輯相等Eqv
與“異或"運(yùn)算是一對(duì)互逆運(yùn)算符,即當(dāng)兩個(gè)表達(dá)式的值相同(都為True或都為False)
,其結(jié)果為True;當(dāng)兩個(gè)表達(dá)式的值不同(一個(gè)為True,另一個(gè)為False)時(shí),其結(jié)果為False。只要表達(dá)式中有一個(gè)為Null,則結(jié)果為Null。
(3)蘊(yùn)含Imp
result=expres
sion
l
Imp
expression2
只有當(dāng)?shù)谝粋€(gè)表達(dá)式expressionl為True,第二個(gè)表達(dá)式expreesion2為False時(shí),結(jié)果才為False,其他情況下結(jié)果均為True。
1.
xor異或兩個(gè)表達(dá)式值相同為False,相異為True2.
eqv邏輯等兩個(gè)表達(dá)式值相同為True,相異為False3.
imp蘊(yùn)含兩個(gè)表達(dá)式前一個(gè)值為True,后一個(gè)值為False時(shí),結(jié)果為True,其余情形皆為False
XOR是異或的意思False Xor False =False
True Xor False =True
False Xor True =True
True Xor True =False 如果是兩個(gè)數(shù)互相Xor的話,先化成2進(jìn)制,然后對(duì)每位進(jìn)行運(yùn)算,相同則為零,不同則為1如:7 Xor 11
(7)10=(0111)2
(11)10=(1011)2
0 1 1 1
1 0 1 1
-Xor--------
1 1 0 0
(1100)2=12
所以7 Xor 11=12