請問VHDL 2進制8Bit BCD寫法 |
答題得分者是:addn
|
dkny7
一般會員 ![]() ![]() 發表:1 回覆:3 積分:0 註冊:2006-12-13 發送簡訊給我 |
|
hsk6138
初階會員 ![]() ![]() 發表:12 回覆:59 積分:49 註冊:2003-12-11 發送簡訊給我 |
===================引 用 文 章=================== 如題 請問如何利用2進制8Bit BCD的寫法? 例如 : 99 99=198 , 如何把"1" 提出到另一個變數裡 1001 1001---------------=hex 99
1001 1001---------------=hex99
-------------------------
0110 0011----------------=10 -99
0001 0011 0010<====132=hex
把2,10,16搞清楚 你的困難就解決了
|
dkny7
一般會員 ![]() ![]() 發表:1 回覆:3 積分:0 註冊:2006-12-13 發送簡訊給我 |
感謝大大我可能說明的不夠清楚 , 我再解釋一次
如果是二進制4位元BCD的寫法 1001(10) <==9 1001 <===9 ----------------- 10010 0110 <===12 6=18 (此時 6可以達到BCD需求) 如果是二進制8位元BCD的寫法 1001 1001 <==99 1001 1001 <===99 ----------------- 10011 0010 0110 0110 <===132 66=198 (此時 66可以達到BCD需求) 可是我不能每次都加66 , 因為如果是92 93 再加66就不等於185 困擾點不知道有沒有說清楚><" |
addn
高階會員 ![]() ![]() ![]() ![]() 發表:64 回覆:221 積分:202 註冊:2005-03-21 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
如 Addn 所說, 4bit 各別處理即可.
Ex : A=99H,B=99H, C 商. if A(0~3) B(0~3) > 9 => C=C 6 if A(4~7) B(4~7) > 9 => C=C 60H 進位請自己思考一下囉.....很簡單的
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
dkny7
一般會員 ![]() ![]() 發表:1 回覆:3 積分:0 註冊:2006-12-13 發送簡訊給我 |
感謝㊣大大提供方法 :
此方法我有試過很多次 可是跑不出(0~3) (4~7)的個別算法 如果跑出來 , 答案會錯一個跟對一個 , 就是會錯其中一組 驗證方法為 1001 1001 1001 1001 = 1 1001 1000 1001 0001 1001 0010 = 1 1000 0011 ===================引 用 文 章=================== 如 Addn 所說, 4bit 各別處理即可. Ex : A=99H,B=99H, C 商.??????? if? A(0~3) B(0~3) > 9? => C=C 6 if? A(4~7) B(4~7) > 9? => C=C 60H 進位請自己思考一下囉.....很簡單的???????????????????????????????????????????????? |
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
dkny7
一般會員 ![]() ![]() 發表:1 回覆:3 積分:0 註冊:2006-12-13 發送簡訊給我 |
下列是我想分別處理所寫的程式 , 可是在執行99+99 或是91+92 (BCD) 時答案只能其中一個對
百思不解 , 請大大幫我看看!! 感謝!! Y<=A B; if y(3 DOWNTO 0) > "1001" then s(3 DOWNTO 0) <= (3 DOWNTO 0) "0110" ; else S(3 DOWNTO 0) <= Y(3 DOWNTO 0); if y(7 DOWNTO 4) > "1001" then s(7 DOWNTO 4) <= (7 DOWNTO 4) "0110" ; cout <= '1' ; else S(7 DOWNTO 4) <= Y(7 DOWNTO 4); end if; end if; |
addn
高階會員 ![]() ![]() ![]() ![]() 發表:64 回覆:221 積分:202 註冊:2005-03-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |