当前位置: 首页 > news >正文

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)。

相关文章:

  • 从坏道扫描到错误修复:HD Tune实战指南
  • 小白到高手的人工智能学习笔记之初步了解pytorch
  • Ubuntu24.04下安装ISPConfig全过程记录
  • AM32电调学习解读八:无感驱动相位波形解析
  • 架构思维:构建高并发扣减服务_分布式无主架构
  • SQL性能分析
  • 第二章 苍穹外卖
  • Mamba LLM 架构简介:机器学习的新范式
  • 互联网大厂Java面试场景:从Spring Boot到分布式缓存技术的探讨
  • QT聊天项目DAY11
  • 如何实现RTSP和RTMP低至100-200ms的延迟:直播SDK的技术突破
  • 数据结构 -- 树形查找(二)平衡二叉树
  • 【GPT入门】第39课 OPENAI官方API调用方法
  • 【数据结构】2-2-2 顺序表的插入删除查找
  • 【Linux高级全栈开发】2.1.3 http服务器的实现
  • ngx_http_proxy_protocol_vendor_module 模块
  • FreeSWITCH 简单图形化界面43 - 使用百度的unimrcp搞个智能话务台,用的在线的ASR和TTS
  • STM32SPI通信基础及CubeMX配置
  • 从零开始实现大语言模型(十五):并行计算与分布式机器学习
  • symfonos: 1靶场
  • 中科院合肥物质院迎来新一届领导班子:刘建国继续担任院长
  • 国际博物馆日|航海博物馆:穿梭于海洋神话与造船工艺间
  • 土耳其、美国、乌克兰三边会议开始
  • 湖北宜化拟斥资超32亿加价回购“弃子”,布局上游煤炭业务
  • 黄仕忠丨戏曲文献研究之回顾与展望
  • 落实中美经贸高层会谈重要共识,中方调整对美加征关税措施