重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
1左移10位,1后面加10個0
創新互聯公司主營夏縣網站建設的網絡公司,主營網站建設方案,App定制開發,夏縣h5微信小程序開發搭建,夏縣網站營銷推廣歡迎夏縣等地區企業咨詢
結果就是:10000000000
五、按位運算符
注意不能在VB.Net中直接使用以下二進制數,使用時需轉換為相應的十六或十進制數字。
1. 表示按位左移,空缺處補0。如:101101 2 結果為 110100
2. 表示按位右移,如:101101 2 結果為 001011
注意只能對整型執行按位運算。浮點值必須轉換為整型后,才能執行按位運算。按位運算采用二進制(以 2 為基)形式計算兩個整數值。它們比較對應位置上的位,然后基于比較的結果賦值。下面的示例演示了 And 運算符。復制Dim x As Integerx = 3 And 5 前面的示例將 x 的值設置為 1。發生這種情況的原因如下:這些值以二進制形式處理:二進制格式的 3 為 011二進制格式的 5 為 101And 運算符比較這些二進制表示方式,一次比較一個二進制位置(位)。如果給定位置的兩個位都為 1,則將 1 放在結果中的該位置。如果任何一個位是 0,則將 0 放在結果中的該位置。在前面的示例中,按如下所示計算結果:011(二進制格式的 3)101(二進制格式的 5)001(二進制格式的計算結果)計算結果以十進制形式處理。值 001 是 1 的二進制表示形式,因此 x = 1。除了在任何一個比較位是 1 或兩個比較位都是 1 的情況下將 1 賦予結果位以外,按位 Or 運算與此類似。Xor 在比較的位正好只有一個是 1(而不是兩者都是 1)時將 1 賦給結果位。Not 采用單個操作數并反轉所有位(包括符號位),然后將該值賦予結果。這意味著,對于有符號正數,Not 始終返回負值,而對于負數,Not 始終返回正值或零。AndAlso 和OrElse 運算符不支持按位運算。 追問: 好復雜啊...還是不會,還有整數怎么轉換為二進制數? 回答: 為什么一定要用位運算呢,你那個乘法只能通過左移操作符“ ”來進行,而左移一次代表乘以2,要是乘以一個小數,就必須先化成2的n次方,不夠再用加減法調整,很麻煩啊,沒必要用位運算啊。。。 追問: 因為我要進行大量的運算,但速度要快,所有用位運算...我也不想啊.. 回答: 那就不該用VB 啊,c/c++在執行效率上是沒話說的。 追問: 問題就是不會嘛... 回答: 那你上csdn上發帖效果應該不錯 追問: CSDN發了,我發在高性能運算,沒人... 回答: 耐心一些,或者你應該發到VB.NET論壇那里。。。 追問: 額..只能這樣了... 提問者 的感言: 太復雜了..算了 2010-11-08
對位模式執行數學左移位。
result = pattern amount
各部分說明
result
必選。整型數值。對該位模式進行移位的結果。數據類型與 pattern 的數據類型相同。
pattern
必選。整型數值表達式。要進行移位的位模式。數據類型必須為整型(SByte、Byte、Short、UShort、Integer、UInteger、Long 或 ULong)。
amount
必選。數值表達式。要將該位模式移位的位數。數據類型必須為 Integer 或擴展到 Integer。
備注
數學移位不是循環的,即不會將在結果的一端移出的數位從另一端重新移入。在數學左移位運算中,丟棄移出結果數據類型范圍的數位,而將右端空出的數位位置設置為零。
為防止移位的結果超出它所支持的位數,Visual Basic 使用與 pattern 的數據類型相對應的大小掩碼來屏蔽 amount 的值。可使用這些值的二進制與運算結果作為移位量。大小掩碼如下所示:
pattern數據類型 掩碼(十進制)掩碼(十六進制)
SByte, Byte 7 H00000007
Short, UShort 15 H0000000F
Integer, UInteger 31 H0000001F
Long, ULong 63 H0000003F
如果 amount 為零,則 result 的值與 pattern 的值相同。如果 amount 為負值,則將把它作為無符號的值,并使用相應的大小掩碼進行屏蔽。
數學移位絕不會產生溢出異常。