资源描述:
《VB中位操作运算函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VB中位操作运算函数VBfunction(shiftinstruction)'theModule:BitPlus・Bas'CodeByHermit@smth,Jun.1st,2000'Email:mailtocw@sohu.com'Maythesefunctionswillhelpyou,and?Pleasekeepthisheaderifyouusemycode,thanks!'providesafunctionofbit-operationinVB'theSHLlogicmovestheSHRlogict
2、otheright'SALarithmeticleftSARsrithmeticright'theROLlooplefttheRORlooptotheright'RCLcarriesthecarrylooptotheleftandtheRCRcarrycirculatestotheright'Bintranslatesthegivendataintoa2-pointstring'usage'SHRSHRSALSARROLRORisbasicallythesame,asanexampleofSHL'youcdn
3、shiftthevariabletype,Byte(Byte),Integer(Integer),LongInteger(Long)'returnvalueTrueisshiftedsuccessfully,Falseshiftfails,andFalseisreturnedwhenthenon-afore-mentionedtypeisshifted,zNumpassesreferencevariable,whichisshifted,andtheprogramoverwritesthevalueofNum
4、totheresultoftheoperationThe〃iCLvaluevariable,thenumberoftimesshifted,thedefaultvalueisshiftedonetime"ExampleDimAAsInteger'A二&hlO'ifSHLAisshifted,A二&H20'likeSHLA,2shifted'likeSHLA,4shiftedRCRissimilartoRCL,asanexampleofRCL'thereisaneedforagivenparameter,the
5、inputvalueofthefirstshift,iCFBin,forexample,A二&IIIIfAisbyte,Bin(A)returnsthevalueas"00000001〃IfAisaninteger,Bin(A)returnsthevalueas,,ooooooooooooooor,IfAisAlonginteger,thenBin(A)returnsthevalueas,,ooooooooooooooooooooooooooooooooooor,〃Iftheincomingparameter
6、isnotoftheabovetype,thereturnvalueisFormoreinformation,pleaserefertotherelevantassemblybooks'logicalleftThePublicFunctionSHL(ByRefNumAsVariant,OptionalByVaiiCLAsByte二1)AsBooleanDimIAsByteDimbMaskAsByte,iMaskAsInteger,IMaskAsLongTheSelectCaseVarType(Num)Case
7、2'16bitsForI=1ToiCLIMask二0If(NumAnd&H4000)<>,TheniMask二&h8000Num二(Num)NextCase3'32bitsForI二1ToiCLLMask二0If(NumAnd/H40000000)<>,ThenIMask二&h80000000Num二(Num)Next8bitsCase17'ForI二1ToiCLBMask二0If(NumAnd&H40)<>,ThenbMask二&h80Num二(Num)NextCasetheElseSHL二FalseThe
8、ExitFunctionEndtheSelectSHL二TrueEndtheFunction'logicmovestotherightThePublicFunctionSHR(ByRefNumAsVariant,OptionalByVaiiCLAsByte二1)AsBooleanDimIAsByteDimbMaskAsByte,iMaskAsInteger,IMaskAsLongTheSelectC