注意只能對整型執(zhí)行按位運算。浮點值必須轉(zhuǎn)換為整型后,才能執(zhí)行按位運算。按位運算采用二進制(以 2 為基)形式計算兩個整數(shù)值。它們比較對應(yīng)位置上的位,然后基于比較的結(jié)果賦值。下面的示例演示了 And 運算符。復(fù)制Dim x As Integerx = 3 And 5 前面的示例將 x 的值設(shè)置為 1。發(fā)生這種情況的原因如下:這些值以二進制形式處理:二進制格式的 3 為 011二進制格式的 5 為 101And 運算符比較這些二進制表示方式,一次比較一個二進制位置(位)。如果給定位置的兩個位都為 1,則將 1 放在結(jié)果中的該位置。如果任何一個位是 0,則將 0 放在結(jié)果中的該位置。在前面的示例中,按如下所示計算結(jié)果:011(二進制格式的 3)101(二進制格式的 5)001(二進制格式的計算結(jié)果)計算結(jié)果以十進制形式處理。值 001 是 1 的二進制表示形式,因此 x = 1。除了在任何一個比較位是 1 或兩個比較位都是 1 的情況下將 1 賦予結(jié)果位以外,按位 Or 運算與此類似。Xor 在比較的位正好只有一個是 1(而不是兩者都是 1)時將 1 賦給結(jié)果位。Not 采用單個操作數(shù)并反轉(zhuǎn)所有位(包括符號位),然后將該值賦予結(jié)果。這意味著,對于有符號正數(shù),Not 始終返回負(fù)值,而對于負(fù)數(shù),Not 始終返回正值或零。AndAlso 和OrElse 運算符不支持按位運算。 追問: 好復(fù)雜啊...還是不會,還有整數(shù)怎么轉(zhuǎn)換為二進制數(shù)? 回答: 為什么一定要用位運算呢,你那個乘法只能通過左移操作符“ ”來進行,而左移一次代表乘以2,要是乘以一個小數(shù),就必須先化成2的n次方,不夠再用加減法調(diào)整,很麻煩啊,沒必要用位運算啊。。。 追問: 因為我要進行大量的運算,但速度要快,所有用位運算...我也不想啊.. 回答: 那就不該用VB 啊,c/c++在執(zhí)行效率上是沒話說的。 追問: 問題就是不會嘛... 回答: 那你上csdn上發(fā)帖效果應(yīng)該不錯 追問: CSDN發(fā)了,我發(fā)在高性能運算,沒人... 回答: 耐心一些,或者你應(yīng)該發(fā)到VB.NET論壇那里。。。 追問: 額..只能這樣了... 提問者 的感言: 太復(fù)雜了..算了 2010-11-08
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元縉云做網(wǎng)站,已為上家服務(wù),為縉云各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
Private?Sub?Form_Click()?'點擊窗體運行
Dim?a?As?Integer,?b?As?Integer
Randomize
a?=?Int(Rnd?*?90)?+?10
Print?"第1個數(shù):";?a
b?=?Int(Rnd?*?90)?+?10
Print?"第2個數(shù):";?b
Print?"兩數(shù)之和:";?a?+?b
Print?"兩數(shù)之差:";?Abs(a?-?b)
End?Sub
應(yīng)該定義為double或者single,string類好像不能進行運算。我簡單說一下控制臺的方法,你要一次性輸入和差積商,首先聲明兩個變量用來儲存兩個數(shù),然后用算法一次性輸出結(jié)果就ok。
Sub Main()
Dim FN As Single
Dim SN As Single
Dim ResultNum As Single
Console.WriteLine("請輸入第一個數(shù)") : FN = Console.ReadLine
Console.WriteLine("請輸入第二個數(shù)") : SN = Console.ReadLine
ResultNum = FN + SN
Console.WriteLine("它們的和: " ResultNum)
ResultNum = FN - SN
Console.WriteLine("它們的差: " ResultNum)
ResultNum = FN * SN
Console.WriteLine("它們的積: " ResultNum)
ResultNum = FN / SN
Console.WriteLine("它們的商: " ResultNum)
Console.ReadLine()
End Sub
myLstResult中就是最終的結(jié)果。
? Dim myLstX As New List(Of Integer)
? Dim myLstXF As New List(Of Integer)
? Dim myLstDiff As New List(Of Integer)
? Dim myLstResult As New List(Of String)
? Dim temp As Integer
? For i = 11 To 99
? ? ? If mylstX.IndexOf(i) = -1 And mylstXF.IndexOf(i) = -1 Then
? ? ? ? ? mylstX.Add(i)
? ? ? ? ? temp = (i Mod 10) * 10 + Int(i / 10)
? ? ? ? ? mylstXF.Add(temp)
? ? ? ? ? mylstDiff.Add(temp - i)
? ? ? End If
? Next
? For i = 0 To myLstDiff.Count - 1
? ? ? For j = 0 To myLstDiff.Count - 1
? ? ? ? ? If i j And myLstDiff(i) + myLstDiff(j) = 0 Then
? ? ? ? ? ? ? myLstResult.Add(myLstX(i).ToString + "+" + myLstX(j).ToString + "=" + myLstXF(i).ToString + "+" + myLstXF(j).ToString)
? ? ? ? ? End If
? ? ? Next
? Next