注意只能对整型执行按位运算。浮点值必须转换为整型后,才能执行按位运算。按位运算采用二进制(以 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
创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元缙云做网站,已为上家服务,为缙云各地企业和个人服务,联系电话:18980820575
Private Sub Form_Click() '点击窗体运行
Dim a As Integer, b As Integer
Randomize
a = Int(Rnd * 90) + 10
Print "第1个数:"; a
b = Int(Rnd * 90) + 10
Print "第2个数:"; b
Print "两数之和:"; a + b
Print "两数之差:"; Abs(a - b)
End Sub
应该定义为double或者single,string类好像不能进行运算。我简单说一下控制台的方法,你要一次性输入和差积商,首先声明两个变量用来储存两个数,然后用算法一次性输出结果就ok。
Sub Main()
Dim FN As Single
Dim SN As Single
Dim ResultNum As Single
Console.WriteLine("请输入第一个数") : FN = Console.ReadLine
Console.WriteLine("请输入第二个数") : 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中就是最终的结果。
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