用VHDL實現十進位制到二進位制的轉換

時間 2021-08-14 23:04:29

1樓:匿名使用者

library ieee; --此程式是個人所編,還未經驗證

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned;

use ieee.std_logic_arith;

entity ss is

port( st:in std_logic;

shuru:in integer range 0 to 255;

shuchu:out std_logic_vector(7 downto 0) );

end ss;

architecture b of ss is

begin

process(st)

variable c:integer range 0 to 255;

variable d:integer range 0 to 255;

variable a:integer range 0 to 7;

begin

if st'event and st='1' then --st為轉換啟動訊號,上升沿啟動

shuchu<="00000000"; --對輸出初始化

c:=shuru; --儲存輸入

d:=shuru; --儲存輸入

a:=0;

while c/= 0 loop --c不等於零則迴圈,c等於零則退出迴圈

c:=c/2; --迴圈除2,類似於十進位制數轉化為二進位制數的方法

d:=d-(c*2); --算完後,d為計算出的每位二進位制數

shuchu(a)<=d; --把每為二進位制數安位給輸出

d:=c; --作為下次除2的被除數

a:=a+1;

end loop;

end if;

st<='0'; --控制訊號清零,等待下一次轉換的到來

end process;

end b;

2樓:我是小飛於

用譯碼器轉換阿

lz的二進位制是要8421碼還是什麼的

3樓:匿名使用者

樓上的程式是錯誤的,

shuchu(a)<=d;資料型別都不一樣,你怎麼賦值呢....

二進位制十進位制轉換公式,二進位制轉十進位制公式

比如10進位制的15轉換2進位制 用15除以2,商為7,餘數為1,再用7除以2,商為3,餘數為1,再用3除以2,商為1,餘數為1,再用1除以2,商為0,餘數為1,最後吧餘數倒過來排列就為二進位制的1111 即商為0時的1,商為1時的1,商為3時的1,商為7時的1 二進位制轉十進位制。以二進位制的11...

十進位制轉二進位制演算法,二進位制轉十進位制,十進位制轉二進位制的演算法 求助

向前看 如果要將十進位制數轉換為二進位制數,則應將十進位制數的整數部分和小數部分分別轉換為二進位制數,然後將這兩部分的二進位制數合併得到完整的二進位制數。首先,通過短除法,十進位制數可以除以2得到多個餘數。最後,將餘數從下到上進行排列組合,得到二進位制數。然後將小數部分乘以2,取每一步的整數部分,從...

二進位制如何轉為十進位制 浮點數c,二進位制如何轉為十進位制 浮點數 c

樓上的 好像還是不能解決浮點數的問題啊 int i 0 int j,k 0 double value 0.0 char d 100 cout 請輸入 n cin d j strlen d for i j 1 i 0 i cout 十進位制是 這段可以解決二進位制轉為十進位制 但是不能實現浮點數的運算...