c语言实现补码转换成原码,vhdl实现补码到原码的转换?

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

jjh7dc9oay

推荐于 2018.04.04

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:49%    等级:12

已帮助:9052人

已知补码求源码 其实就是对补码求补

先取反 再加1求补码 说明你做的是负数的求补 所以第一位应该是符号位

vhdl代码如下

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY exp IS

PORT(clk : in std_logic;

a : in std_logic_vector (7 downto 0);

b : out std_logic_vector (7 downto 0));

END exp;

ARCHITECTURE one OF exp IS

BEGIN

PROCESS(clk)

VARIABLE temp : std_logic_vector (7 downto 0);

begin

if clk'event and clk = '1' then

temp := a XOR "01111111"; --异或求反

temp := conv_std_logic_vector(conv_integer(temp)+1,8); --temp转换成整数加1后再转换回来

b <= temp; --结果输出

end if;

end process;

end one;

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值