注意只能對整型執(zhí)行按位運(yùn)算。浮點值必須轉(zhuǎn)換為整型后,才能執(zhí)行按位運(yùn)算。按位運(yùn)算采用二進(jìn)制(以 2 為基)形式計算兩個整數(shù)值。它們比較對應(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)制表示方式,一次比較一個二進(jìn)制位置(位)。如果給定位置的兩個位都為 1,則將 1 放在結(jié)果中的該位置。如果任何一個位是 0,則將 0 放在結(jié)果中的該位置。在前面的示例中,按如下所示計算結(jié)果:011(二進(jìn)制格式的 3)101(二進(jìn)制格式的 5)001(二進(jìn)制格式的計算結(jié)果)計算結(jié)果以十進(jìn)制形式處理。值 001 是 1 的二進(jìn)制表示形式,因此 x = 1。除了在任何一個比較位是 1 或兩個比較位都是 1 的情況下將 1 賦予結(jié)果位以外,按位 Or 運(yùn)算與此類似。Xor 在比較的位正好只有一個是 1(而不是兩者都是 1)時將 1 賦給結(jié)果位。Not 采用單個操作數(shù)并反轉(zhuǎn)所有位(包括符號位),然后將該值賦予結(jié)果。這意味著,對于有符號正數(shù),Not 始終返回負(fù)值,而對于負(fù)數(shù),Not 始終返回正值或零。AndAlso 和OrElse 運(yùn)算符不支持按位運(yùn)算。 追問: 好復(fù)雜啊...還是不會,還有整數(shù)怎么轉(zhuǎn)換為二進(jìn)制數(shù)? 回答: 為什么一定要用位運(yùn)算呢,你那個乘法只能通過左移操作符“
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),潁泉企業(yè)網(wǎng)站建設(shè),潁泉品牌網(wǎng)站建設(shè),網(wǎng)站定制,潁泉網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,潁泉網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1左移10位,1后面加10個0
結(jié)果就是:10000000000
五、按位運(yùn)算符
注意不能在VB.Net中直接使用以下二進(jìn)制數(shù),使用時需轉(zhuǎn)換為相應(yīng)的十六或十進(jìn)制數(shù)字。
1. 表示按位左移,空缺處補(bǔ)0。如:101101 2 結(jié)果為 110100
2. 表示按位右移,如:101101 2 結(jié)果為 001011
AndAlso是短路的邏輯與運(yùn)算符,And有兩個含義:非短路的邏輯與運(yùn)算符;按位與運(yùn)算符
Dim c=a AndAlso b表達(dá)式中,若表達(dá)式a的計算結(jié)果是False,無論表達(dá)式b是什么樣,都不再進(jìn)行計算,直接返回c的值
Dim c=a And b表達(dá)式中,無論a和b是怎樣的表達(dá)式,都要全部計算完成后再返回c的值
AndAlso相比And的區(qū)別,除了性能優(yōu)勢外,更重要的是,從語義上來說
If a Then
If b Then
End If
End If
等價于If a AndAlso b Then而不等價于If a And b Then
考慮這種情況:
Dim m As ClassM=****
Dim c=m IsNot Nothing AndAlso m.Succeeded
這種實際編程中經(jīng)常遇到的判斷,如果把AndAlso替換成And,在m Is Nothing的情況下會引發(fā)NullReferenceException空引用異常,而AndAlso能確保不會引發(fā)空引用異常
進(jìn)行邏輯運(yùn)算的時候,And只在一種情況下有價值:不僅想要得到c的值,而且無論如何都希望執(zhí)行b過程,并且自己能確保a=False不會影響b的執(zhí)行。其他情況下務(wù)必使用AndAlso
OrElse和Or同理,作為上面那句的逆判斷
Dim c=m Is Nothing OrElse m.Failed
也是經(jīng)常使用的。當(dāng)然在進(jìn)行位運(yùn)算時,只能用And和Or,AndAlso和OrElse沒有位運(yùn)算功能
TextBox1.Text?=?7?And?10
TextBox1.Text?=?7?Or?10
TextBox1.Text?=?7?Xor?10
TextBox1.Text?=?Not?10
TextBox1.Text?=?7??10
TextBox1.Text?=?7??10
如這些,我在VB.Net中也找不到shl和shr運(yùn)算符~
不過可以通過"自定義運(yùn)算符"來寫出我們想要的功能
邏輯運(yùn)算符中所含的And 運(yùn)算符,Eqv 運(yùn)算符,Imp 運(yùn)算符,Not 運(yùn)算符,Or 運(yùn)算符,Xor 運(yùn)算符等均可用來實現(xiàn)位運(yùn)算。
算術(shù)運(yùn)算符的* 運(yùn)算符,\ 運(yùn)算符可用于左移和右移位運(yùn)算。
And 運(yùn)算符,還對兩個數(shù)值表達(dá)式中位置相同的位進(jìn)行逐位比較,并根據(jù)下表對 result 中相應(yīng)的位進(jìn)行設(shè)置:
Or 運(yùn)算符,對兩個數(shù)值表達(dá)式中位置相同的位進(jìn)行逐位比較,并根據(jù)下表對 result 中相應(yīng)的位進(jìn)行設(shè)置:
Xor 運(yùn)算符既可作為邏輯運(yùn)算符,也可作為位運(yùn)算符。使用互斥或的邏輯進(jìn)行的兩個表達(dá)式的逐位比較,其結(jié)果通過下表說明:
詳細(xì)的參考:MSDN6.0關(guān)于運(yùn)算符的介紹。
vb6.0中也有,
數(shù)字 就是讓這個數(shù)字為long型(隱式聲明Long 數(shù)據(jù)類型)
這就顯然是令數(shù)字0為long型的意思
如果不加就會默認(rèn)是integer型
有很多作用
c=a b 就是把a(bǔ)和b以字符串形式連接起來并賦給c
如果只是要將其它類型數(shù)據(jù)轉(zhuǎn)換為字符串只要用cstr(變量)就行了
dim x 在定義的時候就是把變量x定義為long型,就像 dim x as long 一樣的效果
H十六進(jìn)制數(shù) 的H表示后面的是十六進(jìn)制數(shù),還有O是表示后面的是八進(jìn)制數(shù)
VB中不能用。
VB也可以按位與運(yùn)算的。
x=15 and 8的值就是8。
VB中的And可以表示按位與,也可以表示邏輯與,就看參與運(yùn)算的量是什么類型的了。
當(dāng)前題目:vb.net的按位運(yùn)算符 VB 運(yùn)算符
當(dāng)前鏈接:http://jinyejixie.com/article2/hpcsoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)