verilog中的有符号数 |
您所在的位置:网站首页 › 补码二进制转换缘码二进制的规则 › verilog中的有符号数 |
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 |