C# BCD碼與十進位制數的轉換
阿新 • • 發佈:2018-12-03
BCD碼(Binary-Coded Decimal)是二進位制編碼的十進位制數的縮寫,BCD碼用4位二進位制數表示一位十進位制數。BCD碼各位的數值範圍為2#0000~2#1001,對應於十進位制數0~9。BCD碼不能使用十六進位制的A~F(2#1010~2#1111)這6個數字。BCD碼本質上是十進位制數,因此相鄰兩位逢十進一。
BCD碼的最高位二進位制數是符號位,負數的符號位為1,正數為0。16位BCD碼的範圍為–999~+999。
程式碼
private static byte ConvertBCD(byte b)//byte轉換為BCD碼 { //高四位 byte b1 = (byte)(b / 10); //低四位 byte b2 = (byte)(b % 10); return (byte)((b1 << 4) | b2); } /// <summary> /// 將BCD一位元組資料轉換到byte 十進位制資料 /// </summary> /// <param name="b" />位元組數 /// <returns>返回轉換後的BCD碼</returns> public static byte ConvertBCDToInt(byte b) { //高四位 byte b1 = (byte)((b >> 4) & 0xF); //低四位 byte b2 = (byte)(b & 0xF); return (byte)(b1 * 10 + b2); }