算法说明0 R7 B3 j& ]) N4 g* Y' |
1) 十进制正整数m转换为R(2-16)进制的字符串。
! a# Y* p% q8 I: W 思路: 将m不断除r取余数,直到商为0,将余数反序即得到结果。2 |* r% @' c B" c# S
算法实现:
3 t3 E! U- O" w+ G0 G& ~# N; U3 M以下是引用片段:
2 E+ O$ d5 |, H, c y PRivate Function Tran(ByVal m As Integer, ByVal r As Integer) As String # r3 P) s1 \& o+ h% n/ Y
Dim StrDtoR As String, n As Integer : U* z3 Y! L7 D5 t5 o2 ]5 I6 E
Do While m o $ m8 z* t8 I6 x2 K
n = m Mod r
6 {, G; Y$ m+ _) z# w" } m = m \ r
( \( S- _6 L# {5 X' j If n > 9 Then
$ B) |) h, l8 k6 [ StrDtoR = Chr(65 + n - 10) & StrDtoR
: Z- z4 L9 Z9 }7 i Else : F) x$ I7 q) a- A
StrDtoR = n & StrDtoR ) J/ Q3 w7 ?9 J
End If
) `5 O5 O/ J8 w( y; e" _* n" e& s1 u Loop % L+ g8 Q) k0 Y, g$ ~
Tran = StrDtoR
( p0 q8 a, t2 n+ Y y( v* B End Function |