Verilog|数据类型中的有符号和无符…

最近被Verilog中的有符号和无符号迷惑了一下,终于有点眉目了,赶紧写下来。

首先记住,有符号数的运算全都是补码的方式。
下面看3个例子:
-------------------------------------------------------------
reg [7:0]   temp1, temp2, temp3, temp4, temp5,  temp6   ;   
temp1 = 8'd18;
        temp2 = -8'd18;
        temp3 = 8'sd18;
        temp4 = -12/3;
        temp5 = -8'd12/3;
        temp6 = -8'sd12/3;
-------------------------------------------------------------
以下是仿真的结果;
Verilog|数据类型中的有符号和无符号辨析
先看前3个
8'd18表示输入的是无符号的十进制数18
      -8'd18表示输入的是-18,所以结果为11101110
      8'sd18表示输入的是有符号的18
再看后3个
-12/3       的结果为-4的补码
-8'd12/3  的结果比较奇怪,因为-8'sd12可以分解为 -(8'd12)/3,就是11110100/3,结果为01010001
-8'sd12/3 的结果为-4的补码
这里可以看出,加上了s后,在运算的时候编译器把数当作有符号数计算,不加s时,即使是补码的负数,也会直接当作无符号数处理。


  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值