與眾不同的進位制轉換方法 (轉)

gugu99發表於2008-06-29
與眾不同的進位制轉換方法 (轉)[@more@]

小弟最近無聊,研究了一下進位制轉換,發現一般人使用的方法都是用來除一個數的方法得到的,覺得很是沒有創意,於是我就憑著我們中國人的聰明以及不屈不饒,刻苦求知的精神,終於得到另外一種獨特的方法.

那個方法首先要使用兩個Function:

Function bLength(x As Long) As Long '用來得到要轉換的數字轉換後的二進位制長度
bLength = Int(Log(x) / Log(2))
End Function

Function bBit(x As Long, PAs Long) As String '得到指定位的字元
Dim lTmp As Long
lTmp = 2 ^ Pos
bBit = IIf((x And lTmp) = lTmp, "1", "0")
End Function

以下是主:
Function DecToBin(x As Long) As String
Dim sBuf As String, lLength As Long, lPos As Long
sBuf = ""
lLength = bLength(x)
For lPos = 0 To lLength
sBuf = bBit(x, lPos) & sBuf
Next
DecToBin = sBuf
sBuf = ""
End Function

x是要轉換的Dec,返回值就是轉換後的Bin了.
不過只是無聊的時候寫的,所以也就沒有研究相關的反和其它的轉換方法.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1006226/,如需轉載,請註明出處,否則將追究法律責任。

相關文章