verilog中的有符号数

您所在的位置:网站首页 补码二进制转换缘码二进制的规则 verilog中的有符号数

verilog中的有符号数

2024-07-10 23:26| 来源: 网络整理| 查看: 265

1.废话:在进行项目编写的时候发现需要用到补码以表示负数,即使用有符号数。

2.正题:

① 有符号数与无符号数

verilog中的 wire、reg 型变量未特殊申明的情况下默认为无符号数类型;

例如:

wire [4:0] a = 5'b10110; reg [4:0] b = 5'b11011;

其大小转换为十进制规则为:

而对于有符号数类型,则需在申明时额外加上 signed 申明,其为二进制格式下的补码表示形式;

例如:

wire signed [4:0] a ; reg signed [4:0] b ;

由于是补码形式,如果第一位数据为 0,表示为正数,其十进制大小的换算仍然用上面的计算规则;如果第一位数据为1,表示为负数,其十进制大小换算规则如下:

 

(注: 注意累加上限为 B-1,因补码第一位是标志位,不表示数据大小。)

②原码

最高位符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制

③反码

正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变

④补码

正数的补码与原码一致,负数的补码是该数的反码加1

直接上案例:

对于其计算过程:

 

 

关于原码、反码、补码的介绍参考blog:原码,反码,补码的概念



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3