我努力將 BCD 轉換回 STR,如果有人很快知道該怎么做,我真的很感激。
Public Function strBCDToStr(ByVal shIn As Short) As String
'BCD to Text
Dim m_strTemp As String = ""
For m_iLoop As Integer = 1 To 4
m_strTemp = Chr((shIn Mod 16) 48) & m_strTemp
shIn = (shIn \ (16S))
Next
strBCDToStr = m_strTemp
End Function
uj5u.com熱心網友回復:
因為我們只處理short這個作為到標準十六進制表示法的簡單映射。我們可以像這樣反轉它:
Public Function StrToShort(bcd As String) As Short
bcd = bcd.Replace(":", "A").Replace(";", "B").Replace("<", "C").Replace("=","D").Replace(">", "E").Replace("?", "F")
Return Convert.ToInt16(bcd, 16)
End Function
從技術上講,我什至可以將這兩個陳述句結合起來,使這種方法成為一種單行方法。
在這里查看每個可能的輸入,直到小提琴的極限:
https://dotnetfiddle.net/bvmdKC
我們還可以像這樣簡化原始代碼:
Public Function ShortToHexStr(input As Short) As String
Return input.ToString("X").
Replace("A", ":").
Replace("B", ";").
Replace("C", "<").
Replace("D", "=").
Replace("E", ">").
Replace("F", "?").
PadLeft( 4, "0"c)
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515506.html
標籤:VB.netbcd
