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 十進位制是 這段可以解決二進位制轉為十進位制 但是不能實現浮點數的運算...