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

本文深入解析Verilog中有符号和无符号数的运算方式,通过具体例子展示补码运算原理,并详细解释了不同符号标记对运算结果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近被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时,即使是补码的负数,也会直接当作无符号数处理。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值