[Visual Baisc 6.0] 二進位與格雷碼( Gray Code ) 的轉換

摘要:[Visual Baisc 6.0] 二進位與格雷碼( Gray Code ) 的轉換

[Visual Baisc 6.0] 二進位與格雷碼( Gray Code ) 的轉換

 

 


十進位 葛雷碼 二進位

0     000    000
1     001    001
2     011    010
3     010    011
4     110    100
5     111    101
6     101    110
7     100    111

 

# 格雷碼(循環碼)是任意兩個相鄰數的代碼只有一位二進制數不同的BCD碼,它與奇偶校驗碼同屬可靠性編碼

 


'# [Visual Baisc 6.0] 二進位與格雷碼( Gray Code ) 的轉換
'# 0xDe

Private Sub Command1_Click() ' 二進位轉格雷碼
    Text2 = Mid(Text1, 1, 1) ' 格雷碼第一位一定與二進位第一位相同
    
    For i = 2 To Len(Text1)
        Text2 = Text2 & (Val(Mid(Text1, i, 1)) Xor Val(Mid(Text1, i - 1, 1))) ' 目前這一位與前一位互斥或
    Next i
End Sub

Private Sub Command2_Click() ' 格雷碼轉二進位
    Text4 = Mid(Text3, 1, 1) ' 二進位第一位一定與格雷碼第一位相同
    
    For i = 1 To Len(Text3) - 1
        Text4 = Text4 & (Val(Mid(Text4, i, 1)) Xor Val(Mid(Text3, i + 1, 1))) ' 左下與右上角互斥或
    Next i
End Sub

 

[Visual Baisc 6.0] 二進位與格雷碼( Gray Code ) 的轉換.rar

#0xDe 從分享中學習

#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問