试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省杭州市建人高复2018-2019学年高三上学期信息技术12月月考试卷

【加试题】异或的数学符号为“⊕”,其运算法则相当于不带进位的二进制加法:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(即符号两侧数值相同时,计算结果为0;数值不同时为1)。

如果要对两个十进制数进行异或运算,可以按以下步骤进行:

①   先将要进行异或运算的两个十进制数分别转换为二进制;

②   对两个二进制数按位进行异或运算;例:(101101)2⊕(111)2=(101010)2

③   再把步骤②中的运算结果转换为十进制,该十进制数即为运算结果。

小明编写了一个VB程序来模拟上述运算过程,程序功能如下:在文本框Text1和Text2中分别输入要参加异或运算的十进制数,单击计算按钮Command1,程序对输入的两个数进行异或运算,并将运算结果显示在文本框Text3中,程序运行界面如图所示。

(1)、通过以上关于异或运算的描述,可知10⊕6的结果是
(2)、实现上述功能的VB程序如下。请在划线处填入合适的代码。

Private Sub Command1_Click()

  Dim a As Integer, b As Integer, c As Integer

  Dim a1 As String, b1 As String

  Dim lena1 As Integer, lenb1 As Integer, i As Integer

  Dim result As String

  a = Val(Text1.Text)

  b = Val(Text2.Text)

  If a > b Then

    c = a: a = b: b = c

  End If

  result = ""

  a1 = DtoB(a): b1 = DtoB(b)

  lena1 = Len(a1): lenb1 = Len(b1)

  i = 1

  Do While i <= lena1

    If Mid(a1, lena1 - i + 1, 1) = Mid(b1, lenb1 - i + 1, 1) Then

      result = "0" + result

    Else

      result = "1" + result

    End If

    i = i + 1

  Loop

  result =

  Text3.Text = BtoD(result)

End Sub

Public Function DtoB(x As Integer) As String

  Dim remainder As String

  DtoB = ""

  Do While x > 0

    remainder = CStr(x Mod 2)   '如:CStr(3 Mod 2)的值为"1"

    DtoB = remainder + DtoB

      

  Loop

End Function

Public Function BtoD(x As String) As Integer

  Dim i As Integer

  BtoD = 0

  For i = 1 To Len(x)

    BtoD =+ Val(Mid(x, i, 1))

  Next i

End Function

举一反三
返回首页

试题篮