//bcd hex //此函式用於將8421BCD碼轉換為十進位制數,從函式引數可以看出此BCD碼是由兩位十進位制陣列成的。BCD碼是用二進位制數對十進位制數的各個位數進行編碼,比如十進位制數58,那麼轉換為BCD碼為0x58,356對應BCD碼就是0x356。注意這是編碼不是數進位制間的轉換,他們之間不存在等價關係。只是進行編號,為了方便對編號後的資料用十六進位制數表示。對應編碼規則如下:
十進位制數---8421BCD碼----編碼後用等價的十六進位制數表示
0-----------0000----------0x0
1-----------0001----------0x1
2-----------0010----------0x2
3-----------0011----------0x3
4-----------0100----------0x4
5-----------0101----------0x5
6-----------0110----------0x6
7-----------0111----------0x7
8-----------1000----------0x8
9-----------1001----------0x9
知道了編碼規則,那麼將2位8421bcd碼編號的數,還原為十進位制數也就方便了。函式引數是一個位元組那麼決定了此8421BCD碼是兩位碼即高四位是一個碼值、低四位是一個碼值,將高四位乘以10加上低四位碼值就得到了十進位制數。
//bcd hex //此函式用於將8421BCD碼轉換為十進位制數,從函式引數可以看出此BCD碼是由兩位十進位制陣列成的。BCD碼是用二進位制數對十進位制數的各個位數進行編碼,比如十進位制數58,那麼轉換為BCD碼為0x58,356對應BCD碼就是0x356。注意這是編碼不是數進位制間的轉換,他們之間不存在等價關係。只是進行編號,為了方便對編號後的資料用十六進位制數表示。對應編碼規則如下:
十進位制數---8421BCD碼----編碼後用等價的十六進位制數表示
0-----------0000----------0x0
1-----------0001----------0x1
2-----------0010----------0x2
3-----------0011----------0x3
4-----------0100----------0x4
5-----------0101----------0x5
6-----------0110----------0x6
7-----------0111----------0x7
8-----------1000----------0x8
9-----------1001----------0x9
知道了編碼規則,那麼將2位8421bcd碼編號的數,還原為十進位制數也就方便了。函式引數是一個位元組那麼決定了此8421BCD碼是兩位碼即高四位是一個碼值、低四位是一個碼值,將高四位乘以10加上低四位碼值就得到了十進位制數。