BCD轉換成十進位制

2021-09-28 19:59:27 字數 570 閱讀 4372

bcd碼是指用二進位制來表示十進位制數的編碼,即用4位二進位制來表示一位十進位制數,因此4位二進位制數表示最大的十進位制數9(1001),只取十六個數中的十個數(有別於8421碼)。

為了表示兩個十進位制數(十位、個位),需要兩個bcd碼(8位),可以用char 型別來儲存,比如:

bcd碼:0x99 (153),共八位,儲存在char 型別中,它對應的二進位制為1001 1001.

該bcd碼要轉換成十進位制數99。

思路:十進位制數逢十進一,而十六進製制逢十六進一,它們之間每次進製差了6,這就是十六進製制與十進位制數的本質區別,因此要把乙個bcd轉換成乙個十進位制的數,先要算清多進製了幾次,比如0x99,它多進製9次,那它就多加了9次6,要轉換成十進位制,只需用0x99 - 9*6 即可。

所以,我比較中意的演算法就是

153 - 99= 54 

54 / 9 = 6

static unsigned char bcd_decimal(unsigned char bcd)

static unsigned char decimal_bcd(unsigned char decimal)

十進位制轉換成其他進製數

十進位制轉換成其他進製數 class trans public static string tobinary int num 十進位制轉換成二進位制數 public static string tooctal int num 十進位制轉換成八進位制數 public static string toh...

十進位制轉換成任意進製 c語言

今天搞懂了怎麼把十進位制轉換成任意進製,我試了好幾次有時邏輯上沒有錯誤,但是我由於c語言基礎不是太好,所以老是出現一些基礎錯誤。以此來記錄一下我要寫的 以後繼續銘記。最近也寫了乙個十進位制轉換任意進製 鏈棧實現 十進位制轉換任意進製,遞迴實現 void fun int n,int m else c ...

十進位制轉換成經緯度

gps座標系我本身不太了解它跟谷歌地圖經緯度有多大區別,於是搜了一下,看看他們的區別 地形圖座標系 我國的地形圖採用高斯 克呂格平面直角座標系。在該座標系中,橫軸 赤道,用 表示 縱軸 經線,用 表示 座標原點 經線與赤道的交點,用0表示。赤道以南為負,以北為正 經線以東為正,以西為負。我國位於北半...