與眾不同的進制轉換方法
發表時間:2024-06-20 來源:明輝站整理相關軟件相關文章人氣:
[摘要]小弟最近無聊,研究了一下進制轉換,發現一般人使用的方法都是用來除一個數的方法得到的,覺得很是沒有創意,于是我就憑著我們中國人的聰明以及不屈不饒,刻苦求知的精神,終于得到另外一種獨特的方法.那個方法首先要使用兩個Function:Function bLength(x As Long) As Long...
小弟最近無聊,研究了一下進制轉換,發現一般人使用的方法都是用來除一個數的方法得到的,覺得很是沒有創意,于是我就憑著我們中國人的聰明以及不屈不饒,刻苦求知的精神,終于得到另外一種獨特的方法.
那個方法首先要使用兩個Function:
Function bLength(x As Long) As Long 注釋:用來得到要轉換的數字轉換后的二進制長度
bLength = Int(Log(x) / Log(2))
End Function
Function bBit(x As Long, Pos As 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了.
不過只是無聊的時候寫的,所以也就沒有研究相關的反函數和其它的轉換方法.