欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 76.有符号数累加运算

76.有符号数累加运算

2025/5/19 8:33:00 来源:https://blog.csdn.net/weixin_47881377/article/details/148049171  浏览:    关键词:76.有符号数累加运算

有符号数负数补码相加时,全部位都参与运算,包括符号位,当相加和超出定义位宽时自动丢掉高位。

出现问题原因分析:

虽然输入数据HIdata_wire[32*(DEVMUM/2)-1:0]定义为有符号数,但其内部不是一个数据,相当于串行数据存储器,因此会将其整体看成一个有符号数,当累加时取出的数据依然是按默认无符号来对待,导致数据出错。(按无符号数相加了)

-2的补码:2^32-2=4294967296-2=4294967294

-4的补码:2^32-4=4294967292

4294967294 + 4294967292=8,589,934,586

解决办法:

累加前进行强制类型转换为有符号数

计算结果正确。

注意:当数据被认为是无符号数时,补码所有位直接相加,也就是按正数相加。

         当被认为是负数时,会自动匹配出符合数值的数据位宽,然后相加求和舍弃后再进行符号              位的扩展。(扩展的符号位不参与运算)。自己解释的

         VHDL强制类型转换为 TO_SIGNED(-5,8)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词