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

有符号加法运算

实例

module Signed_add(
	input  signed [3:0] a,
	input  signed [3:0] b,
	output signed [4:0] out 
    );
  wire signed [3:0] a1;
  wire        [3:0] a2;
  wire signed [3:0] b1;
	wire        [3:0] b2;
	wire signed [4:0] out1;
	wire        [4:0] out2;
	wire signed [4:0] out3;
	wire        [4:0] out4;
	
	assign a1 = a;
	assign a2 = a;
	assign b1 = b;
	assign b2 = b;
	
	assign out = a + b;
	assign out1 = a1 + b1;
	assign out2 = a1 + b1;
	assign out3 = a1 + b2;
	assign out4 = a1 + b2;
	    
    
endmodule

  • 数据是以补码形式存在的,因此无论输出是否为有符号数存储内容是一样的
  • 无符号数和有符号数进行运算会被认为无符号数运算

总结

有符号数与有符号数的加(减)运算

step1:将数据转换为补码。

step2:确定输出结果的位宽。(结果的位宽是在最大的一个数据的位宽基础上加一位。如6bit与3bit进行加减,则结果为7bit。)

step3:扩展符号位到输出结果的位宽,然后直接进行运算。

step4:处理输出结果。(因为得到的结果是补码,需要转化为原码后再输出。转换方法:判断符号位,如果符号位为0,表明是一个正数,则直接输出(正数原码和补码相等)。如果符号位是1,表明是一个负数,需要符号位不变,有效位取反加一后再输出(补码变原码)。)

无符号数与有符号数的加(减)运算

step1:将无符号数转换为有符号数。

step2:将数据转换为补码。

step3:确定输出结果的位宽。(结果的位宽是在最大的一个数据的位宽基础上加一位。如6bit与3bit进行加减,则结果为7bit。)

step4:扩展符号位到输出结果的位宽,然后直接进行运算。

step5:处理输出结果。(因为得到的结果是补码,需要转化为原码后再输出。转换方法:判断符号位,如果符号位为0,表明是一个正数,则直接输出(正数原码和补码相等)。如果符号位是1,表明是一个负数,需要符号位不变,有效位取反加一后再输出(补码变原码)。

注意:由于默认情况下,无符号数与有符号数的运算会被转换为无符号数运算而得到错误的结果,因此需要提前转换无符号数为有符号数


http://www.kler.cn/news/10066.html

相关文章:

  • 【C++】结构体嵌套结构体
  • 包装类,String,String的方法
  • ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示
  • 激活函数(Activation Function)
  • Android 新版 Logcat 操作小技巧
  • 【软件安装】图数据库_Neo4j下载与安装配置详解
  • 人人拥有ChatGPT的时代来临了,这次微软很大方!
  • java 面试消息题1-13
  • 手游盒子平台搭建流程
  • React styled-components(二)—— props、attrs属性
  • Swagger教程
  • x86中断基础
  • 【React全家桶】React-Redux
  • tpm2-tools源码分析之tpm2_createprimary.c(1)
  • 或许能用 ChatGPT 插件实现财富自由
  • 第31天-贪心-第八章 ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
  • 分享(五):免费可用的多种类 API 大全集合整理
  • 【ChatGPT】ChatGPT-5 强到什么地步?
  • CSS2023年面试题汇总~~~~持续更新中!!!!
  • 【vue2】使用elementUI进行表单验证实操(附源码)
  • 第一个禁止ChatGPT的西方国家
  • Web 攻防之业务安全:密码找回流程绕过测试.(利用链接跳到后面去)
  • 【华为OD机试真题】计算至少需要多少个快递主站点(javapython)
  • 代码随想录算法训练营第四十八天-动态规划9|198. 打家劫舍,213. 打家劫舍 II,337. 打家劫舍 III
  • 基于虚拟同步发电机的孤岛逆变器控制策略(孤岛VSG)
  • 数组的ES6方法(回顾)
  • GPTCache:LLM 应用必备的【省省省】利器
  • 数据模型的基础知识
  • Bootstrap学习笔记(1.0)
  • Cheaptrick算法