资源描述:
《vb常用算法9 进制转换》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VB常用算法----进制转化1、十进制正整数m转换为R(2-16)进制的字符串。思路:将m不断除r取余数,直到商为0,将余数反序即得到结果。算法实现:PrivateFunctionTran(ByValmAsInteger,ByValrAsInteger)AsStringDimStrDtoRAsString,nAsIntegerDoWhilem<>on=mModrm=mrIfn>9ThenStrDtoR=Chr(65+n-10)&StrDtoRElseStrDtoR=n&StrDtoREndIfLoopTran=StrDtoREnd
2、Function 2、R(2-16)进制字符串转换为十进制正整数。思路:R进制数每位数字乘以权值之和即为十进制数。算法实现:PrivateFunctionTran(ByValsAsString,ByValrAsInteger)AsintegerDimnAsInteger,decAsIntegers=UCase(Trim(s))Fori%=1ToLen(s)IfMid(s,i,1)>="A"Thenn=Asc(Mid(s,i,1))-Asc("A")+10Elsen=Val(Mid(s,i,1))EndIfdec=dec+n*r^(L
3、en(s)-i)NextiTran=decEndFunction 解题技巧进制转化的原理要清楚,同时编写代码时候要留意16进制中的A-F字符的处理。 3、实战练习1) 补充代码(2002秋二(9))本程序是把给定的二进制整数转换为八进制整数。OptionExplicitPrivateSubCommand1_Click()DimaAsString,bAsString,cAsStringDimLAsInteger,mAsInteger,nAsIntegera=InputBox("请输入一个二进制数","输入框")(1)a=S
4、tring(L,"0")&a(2)Form=1Ton/3b=Mid(a,3*m-2,3)(3)NextmText1.Text=cEndSubPrivateFunctionzh(sAsString)AsStringDimiAsInteger,nAsInteger,pAsIntegerp=1Fori=2To0Step-1(4)p=p+1Nextizh=Str(n)EndFunction 2) 补充代码(2001春二(7))下面程序是把给定的16进制正整数转换为10进制数。OptionExplicit'16进制正整数转换为10
5、进制数PrivateSubCommand1_Click()DimStAsString,DemAsLongSt=InputBox("输入一个十六进制数")Dem=Convert(St)PrintSt;">=";DemEndSubPrivateFunctionConvert(SAsString)AsLongDimNAsInteger,IAsInteger,SubstringAsString*1DimPAsLong,KAsLong,Asc1AsIntegerN=(1)P=16^NForI=1ToNP=P/16Substring=(2)Se
6、lectCaseSubstringCase"0"To"9"K=K+P*Val(Substring)Case(3)Asc1=Asc(Substring)-Asc("A")+10(4)EndSelectNextI(5)EndFunction