FPGA学习笔记(十三)负数运算 您所在的位置:网站首页 计算器如何算负数 FPGA学习笔记(十三)负数运算

FPGA学习笔记(十三)负数运算

2024-06-28 17:36| 来源: 网络整理| 查看: 265

系列文章目录

文章目录 系列文章目录Verilog负数负数运算原理

Verilog负数

reg寄存器是最常用的寄存器类型,这种寄存器中只能存放无符号数。如果给reg中存入一个负数,通常会被视为正数。

reg [8:0] a; //9位b

声明是有符号数要加signed,做加法或乘法时,对操作数扩位处理时高位补符号位;即负数补1,正数补0;

reg signed [8:0] a; a = -8'd1; a = 8'd1; 负数运算原理

正数5:0 0101 负数5:1 0101

那么如何进行加减乘除呢 计算中1-2会转化为1+(-2),减法转加法,乘法转加法和位移,除法转乘法再转换

我们看到如果直接用0 0101+ 1 0101 = 1 1010 (-10) 这样结果不是0

所以出现了反码:正数的反码不变,负数的反码是符号位不变,其他取反 这样 1 0101的反码是 1 1010 再计算 0 0101+ 1 1010 =1 1111,这样的话就需要用 1111111表示0.,不方便

于是出现了补码,正数的补码不变,负数的补码加1 1 0101的补码:1 1010+1 = 1 1011 0 0101+ 1 1011= 00000 (0),于是就可以用全0表示0了。 这样用补码计算出如果最高位是0,直接转正数就行 如果最高位是1,就是负数,要倒转回去(即-1,取反)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有