题目

十进制整数换成二进制整数采用“除2倒取余”法。十进制小数转换成二进制小数采用“乘2顺取整”法,具体做法是:用2乘十进制数的小数部分,得到一个积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。小刘根据以上方法编写了VB程序,运行界面如图所示。程序运行时,在文本框Text1中输入一个带小数的正十进制数(小于32767),点击“转换”按钮Command1,在文本框Text2中输出转化后的带小数的二进制数,精确到3位小数。实现上述功能的VB程序如下,请回答下列问题: (1) 按照本程序的功能,在Text1中输入数据9.78,点击“转换”按钮Command1,在Text2中输出。 (2) 请在划线处填入合适的代码. Private Sub Command1_Click()   Dim i As Integer,pos As Integer   Dim s As String,c As String,result As String   Dim s1 As Single,s2 As Single   result=" ": i=1   s=Text 1.Text   c=Mid(s,i,1)   Do While c<>"."     i=i+1     c=Mid(s,i,1)   Loop   pos=i       ①       s2 = Val("0."+Mid(s,pos +1))   result=convert(s1)&"." & convert(s2)   Text2.Text=result End Sub Function convert(x As Single)As String   Dim temp As Integer,k As lnteger   If x>=1 Then '整数转化为二进制     temp=x Mod 2     result=temp & result     x=x\2     Do While x <>0       temp=x Mod 2       result=temp & result       x=x\2     Loop   Else  '小数转化为二进制,保留3位小数     k=1     Do While   ②          temp=Int(x*2)       result=result & temp                ③                k=k +1         Loop     End If     convert=result   End Function ①②③ 答案: 【1】1001.110 【1】s1=Val(Mid(s,1,pos-1))或者s1=Val(Mid(s,1,i-1)【2】x<>0Andk<4【3】x=x * 2-temp
信息技术 试题推荐
最近更新