0DECtoBIN=DecMod2&DECtoBIND"> 0DECtoBIN=DecMod2&DECtoBIND" />
欢迎来到天天文库
浏览记录
ID:50588981
大小:20.00 KB
页数:4页
时间:2020-03-12
《VB编程序实现十进制数转换成2、8、16进制数.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VB编程序实现十进制数转换成2、8、16进制数十进制转二进制PublicFunctionDECtoBIN(DecAsLong)AsStringDECtoBIN=""DoWhileDec>0DECtoBIN=DecMod2&DECtoBINDec=Dec2LoopEndFunction十进制转八进制:VB自带函数:Oct(num)十进制转十六进制:VB自带函数:hex(num)转换成十六进制Hex()如:10(十进制):Hex(10)=A转换成8进制Oct()如:10(十进制):Oct(10)=12转换成2进制,使
2、用下面的方法'采用连除2取余数,将一个十进制数转换为二进制数DimDecAsInteger'输入一个十进制数DimBinAsString'转换为二进制表示DimresAsIntegerDimiAsIntegerDec=Val(InputBox("x="))Form1.Print"十进制数:";DecDores=DecMod2'求出除以2的余数Bin=res&BinDec=Dec2LoopWhileDec<>0Form1.Print"转换为二进制数为:";BinPrivateSubCommand1_Click()P
3、rintbin(Text1.Text)EndSubFunctionbin(nAsLong)AsStringDoUntiln=0bin=(nMod2)&binn=n2LoopEndFunction十六进制:Hex(number)或使用&H前缀八进制:Oct(number)或使用&O前缀二、八、十六进制转为十进制:参数sdate为要进行转换的数,stype为此数的类型。如要将十六进制的"7b"转为十进制:msgboxOtherToShi("7b",16)PrivateFunctionOtherToShi(ByValS
4、dateAsString,ByValStypeAsLong)AsStringDimAAsString,KAsLong,PAsLongIftrim(sdate)=""thenmsgbox"请输入要转换的数!":ExitfunctionOnErrorGoToExitsubP=Len(Sdate)SelectCaseStypeCase2ForK=1ToPIfMid(Sdate,K,1)>1ThenGoToExitsubNextCase8IfIsNumeric(Sdate)=FalseThenGoToExitsubSdat
5、e=Round(Sdate)p=len(sdate)Case16ForK=1ToPA=Asc(LCase(Mid(Sdate,K,1)))IfA<48Or(A>49AndA<97)OrA>102ThenGoToExitsubNextCaseElse'按你说的操作,此句好象可免MsgBox"指定转换的类型不正确,请重新输入!":ExitFunctionEndSelectK=0DoWhileK6、"10"Case"b"A="11"Case"c"A="12"Case"d"A="13"Case"e"A="14"Case"f"A="15"EndSelectEndIfOtherToShi=LTrim(Str(Val(OtherToShi)+Val(A)*Stype^(P-K)))LoopExitFunctionExitsub:MsgBox"要转化为"&Stype&"进制的数据不合法,请重新输入!"EndFunction'十进制转为二、八、十六进制:'用法与上类似PrivateFunctionShiToOther(B7、yValSdateAsString,ByValStypeAsLong)AsStringDimSAsStringIftrim(sdate)=""thenmsgbox"请输入要转换的数!":ExitfunctionIfIsNumeric(Sdate)=FalseThenGoToExitsub'要转换的对象非数值型,跳出不执行OnErrorGoToExitsubSdate=Round(Val(Sdate))'进行四舍五入DoWhileSdate>0S=LTrim(Str(SdateModStype))IfStype=168、ThenSelectCaseSCase"10"S="A"Case"11"S="B"Case"12"S="C"Case"13"S="D"Case"14"S="E"Case"15"S="F"EndSelectEndIfShiToOther=S&ShiToOtherSdate=SdateStypeLoopExitFunctionExitsub:MsgBox"要转
6、"10"Case"b"A="11"Case"c"A="12"Case"d"A="13"Case"e"A="14"Case"f"A="15"EndSelectEndIfOtherToShi=LTrim(Str(Val(OtherToShi)+Val(A)*Stype^(P-K)))LoopExitFunctionExitsub:MsgBox"要转化为"&Stype&"进制的数据不合法,请重新输入!"EndFunction'十进制转为二、八、十六进制:'用法与上类似PrivateFunctionShiToOther(B
7、yValSdateAsString,ByValStypeAsLong)AsStringDimSAsStringIftrim(sdate)=""thenmsgbox"请输入要转换的数!":ExitfunctionIfIsNumeric(Sdate)=FalseThenGoToExitsub'要转换的对象非数值型,跳出不执行OnErrorGoToExitsubSdate=Round(Val(Sdate))'进行四舍五入DoWhileSdate>0S=LTrim(Str(SdateModStype))IfStype=16
8、ThenSelectCaseSCase"10"S="A"Case"11"S="B"Case"12"S="C"Case"13"S="D"Case"14"S="E"Case"15"S="F"EndSelectEndIfShiToOther=S&ShiToOtherSdate=SdateStypeLoopExitFunctionExitsub:MsgBox"要转
此文档下载收益归作者所有