精华内容
下载资源
问答
  • 定点小数和定点整数

    千次阅读 2020-07-15 10:59:02
    定点小数和定点整数 1.定点小数 2.定点整数

    定点小数和定点整数

    1.定点小数
    在这里插入图片描述
    2.定点整数
    在这里插入图片描述

    展开全文
  • 一、符号数 整个机器字长的全部二进制均为数值,没有符号,相当于数的绝对值。n符号数表示范围为:000 ~ 2n−12^n-12n−1 ...根据小数点固定的位置不同可以分为定点小数和定点整数。 ...

    一、无符号数

    整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。n位的无符号数表示范围为: 0 0 0 ~ 2 n − 1 2^n-1 2n1

    在这里插入图片描述


    二、有符号数

    有符号数用“0”表示“正”号,用“1”表示“负”号。有符号数的机器表示有原码、补码、反码和移码。

    在这里插入图片描述


    三、定点小数和定点整数

    定点表示即约定机器数中的小数点位置是固定不变的。根据小数点固定的位置不同可以分为定点小数和定点整数。

    在这里插入图片描述

    展开全文
  • Verilog表示小数-定点小数

    千次阅读 2019-11-27 17:23:54
    最近博主搞FPGA图像处理,由于用作三维成像那么精度必...何谓定点小数,顾名思义,就是小数位后的数目固定,即精度固定,这里假设有一个16位的变量,我们使它的精度为8位,那么它的精度是多少呢? 其实就是1/2^8=0.0...

    最近博主搞FPGA图像处理,由于用作三维成像那么精度必不可少啊,但是Verilog又不像c等高级语言一样,我随便设个double就可以赋值啊啥的,那么咋办,定点小数就孕育而生了。当然verilog也可以用浮点数表示,这里博主就不提及了。

    何谓定点小数,顾名思义,就是小数位后的数目固定,即精度固定,这里假设有一个16位的变量,我们使它的精度为8位,那么它的精度是多少呢? 其实就是1/2^8=0.00390625.这里举个例子说明

    例如有个 reg [15:0] a=16'b0111_1011_1111_0000

    我们不管符号位,那么这个二进制数是31728,但是它表示的定点小数是31728/2^8=123.9375

    那么这有什么用呢?例如假设一个小数b=2.3,我们假设其定点小数位数是5,那么其定点小数为int(2.3*2^5)=73,其实际表示的小数为73/2^5=2.28125 看到么,相差无几,而其精度也有定点位数决定。

    那么我们假设x,x1,x2为实际小数,y1,y2,y3为定点小数,定位精度是n位,有如下关系

    y1=y2+y3 <<=>>x1=x2+x3

    y1=y2-y3 <<=>>x1=x2-x3

    y1=y2/2^n*y3 <<=>>x1=x2*x3

    y1=y2*2^n/y3 <<=>>x1=x2/x3

    加减比较好理解,乘除为什么需要移位呢?以乘法为例子

    y1=x1*2^n

    y2*y3=x2*x3*x^2n                  ==>>y1*2^n=y2*y3 证毕

    展开全文
  • 顾名思义定点数就是小数位固定不变的数叫做定点数,也就是小数点是定在某个位置不变的数。 2、定点数的分类: (1)定点整数:定点整数的小数点后面没有其他的数值,即小数点定在了数的最后面 定点整数又分为...

    1、定点数:

                        顾名思义定点数就是小数位固定不变的数叫做定点数,也就是小数点是定在某个位置不变的数。

     2、定点数的分类:

                      (1)定点整数:定点整数的小数点后面没有其他的数值,即小数点定在了数的最后面

                              定点整数又分为以下两类:

                              @@:无符号的定点整数:Unsigned fixed point integer,无符号定点整数没有符号位,所以它的全部数位都用来表示数字,且它的小数点隐含在最低位后,在它的二进制形式中不存在小数点(数在计算机中都是以二进制的形式进行存储的)。

                              对于某种数的表示方式,我们关心两点:

                              1.表示范围:这种方法表示数的大小(正负方向),无符号定点整数范围:0~2n-1

                              2.分辨率:精度,1(即最小非零正数)

                             二进制数:XnXn-1...X1X0表示无符号定点整数,则有n+1位正整数,它所代表的十进制数大小为:

                            

                           例如8位无符号二进制数的表示范围为:00000000-11111111:0-255

                           @@:带符号定点整数

                           定义:带符号定点整数是纯整数,小数点在最低位之后,最高位为符号位,它与无符号定点整数的区别就是它的                                       最高位只用来指示符号,不代表实际数值,并且它在计算机中以而二进制的补码形式存储。

                                       

                              XnXn-1...X1X0表示无符号定点整数(假设是原码形式),则有n+1位正整数,它所代表的十进制数大小为:

                            

                             最高位为0代表正数,最高位为1代表负数。

                           例如8位有符号二进制数的表示范围为:00000000-11111111:-128 到127

    (2)有符号定点小数:

                        

                定点小数即纯小数(但好多博客都说小数的位数和正数的位数可以事先约定,那这样的话就不是纯小数了,这一点还有疑惑,小数点的位置固定在最高有效数位之前、符号位之后,如图1所示。定点小数的小数点位置是隐含约定的,小数点并不需要真正地占据一个bit。

                      
                                                                          图1 定点小数格式
        当 Xs = 0 时,该小数为正值,其原码和补码表示的形式相同。

        其中,

        ⑴ 绝对值最大的正小数为:

                                                                      

         其实际值等于(通过移项及合并同类项,可知该等式成立): 

                                 

        ⑵ 绝对值最小的正小数为: 

                                               

        其实际值等于: 

                                               

        以8bit数为例,最大正小数为 0.111 1111 = 1 - 2⁻⁷;最小正小数为 0.000 0001 = 2⁻⁷

        当 Xs = 1 时,该小数为负值,有原码和补码两种表示形式(以下形式包含Xs位)。 

        ⑴ 绝对值最大的负小数

            ① 原码表示

                        

             ② 补码表示

                         

        ⑵ 绝对值最小的负小数

            ① 原码表示

                        

             ② 补码表示

                             

        可见,定点负小数的原码表示范围为: -(1 - 2⁻ⁿ) ~ -2⁻ⁿ;其补码表示范围为:-1 ~ -2⁻ⁿ。且n值越大,精度越高。


    3.verilog中的定点小数

             程序指定小数点的位置即为定标,有两种方法:Q表示方法和S表示方法。
    (1) Q表示法:Qn表示低n位为小数,其余位为符号位和整数位。
    (2) S表示法:Sn中低(15-n)为小数,其余位符号位和整数位。
    在使用XILINX VIVADO 中的IP核,都是以Q表示法表示。

                        定点小数的表示范围:

                  其中N为定点数的位数(排除符号位),n为定标的位数,其中n越大则数据越精确,但表示的范围也会越小

    其中N为定点数的位数(排除符号位),n为定标的位数,其中n越大则数据越精确,但表示的范围也会越小。

               假设有一个16位的变量,设定小数占8位,那么它的精度为8位,那么它的精度是多少呢? 其实就是1/2^8=0.00390625.

              (0.5,0.25,0.125,0.0625,0.03125,0.015625,0.0078125,0.00390625)

             例如:reg [15:0] a=16'b0111_1011_1111_0000             它表示的定点小数为:31728/(2^8) = 123.9375也就是:

                     01111011.11110000的十进制数值

     

            假设一个数2.3,它的二进制形式为10.0100110........后面有无穷多位;但约定好小数的位数为5位之后,则这个数就成为了2.28125,小数的位数越多。精度越高,越接近其真值;

              

         那么我们假设x,x1,x2为实际小数,y1,y2,y3为定点小数,定位精度是n位,有如下关系

    y1=y2+y3 <<=>>x1=x2+x3

    y1=y2-y3 <<=>>x1=x2-x3

    y1=y2/2^n*y3 <<=>>x1=x2*x3

    y1=y2*2^n/y3 <<=>>x1=x2/x3

    加减比较好理解,乘除为什么需要移位呢?以乘法为例子

    y1=x1*2^n

    y2*y3=x2*x3*x^2n                  ==>>y1*2^n=y2*y3 证毕
     

    4.浮点数

          浮点数是一种 公式化 的表达方式,用来近似表示实数(浮点数也是实数),并且可以在表达范围和表示精度之间进行权衡(因此被称为浮点数)。

    浮点数通常被表示为:

    N=M×R^E

    比如: 12.345=1.2345×10^1

    其中,M(Mantissa)被称为浮点数的 尾数 ,R(Radix)被称为阶码的 基数 ,E(Exponent)被称为阶的 阶码 。计算机中一般规定R为2、8或16,是一个确定的常数,不需要在浮点数中明确表示出来。

    因此,在已知标准下,要表示浮点数,

    一是要给出尾数M的值,通常用定点小数形式表示(这里表示:纯小数),它决定了浮点数的表示精度,即可以给出的有效数字的位数。

    二是要给出阶码,通常用定点整数形式表示,它指出的是小数点在数据中的位置,决定了浮点数的表示范围。因此,在计算机中,浮点数通常被表示成如下格式:(假定为32位浮点数,基为2,其中最高位为符号位)

    32位浮点数:

                          

                浮点数

    64位浮点数:

                  

           

    浮点数的规格化表示 

    按照上面的指数表示方法,一个浮点数会有不同的表示:

    0.3×10^0;0.03×10^1;0.003×10^2;0.0003×10^3;

    为了提高数据的表示精度同时保证数据表示的唯一性,需要对浮点数做规格化处理。

    在计算机内,对非0值的浮点数,要求尾数的绝对值必须大于基数的倒数,即|M|≥1/R。

    即要求尾数域的最高有效位应为1,称满足这种表示要求的浮点数为规格化表示:把不满足这一表示要求的尾数,变成满足这一要求的尾数的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改阶码实现。

    比如,二进制原码的规格化数的表现形式:(0正1负)

    正数 0.1xxxxxx

    负数 1.1xxxxxx

    为了提高数据的表示精度,当尾数的值不为0时,尾数域的最高有效位应为1,这称为浮点数的规格化表示。否则以修改阶码同时左右移动小数点位置的办法,使其变成规格化数的形式。

     

    至此,我们引入IEEE754 标准,该标准约束了浮点数的大部分使用设置:(尾数用原码;阶码用“移码”;基为2)

    在IEEE754标准中,一个规格化的32位浮点数x的真值表示为
    x = (-1) ^s X(1.M)X 2^(E-127)
    e = E - 127
    其中尾数域所表示的值是1.M。由于规格化的浮点数的尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。于是用23位字段可以存储24位有效数。(没有理解为啥这样)

    64位的浮点数中符号位1位,阶码域11位,尾数域52位,植树偏移值是1023.因此规格化的64位浮点数x的真值为
    x = (-1)s X(1.M)X 2^(E-1023)
    e = E - 1023

    总结如下:

    (1) 尾数用原码,且隐藏尾数最高位。

    原码非0值浮点数的尾数数值最高位必定为 1,因此可以忽略掉该位,这样用同样多的位数就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。

    (2) 阶码使用“移码”,基固定为2

    如下图的32bit浮点数和64bit浮点数,从最高位依次是符号位、阶码和尾数 

    float

    于是,

    一个规格化的32位浮点数x的真值为:

    x=(−1)^s×(1.M)×2E^−127

    一个规格化的64位浮点数x的真值为:

    x=(−1)^s×(1.M)×2E^−1023

    下面举一个32位单精度浮点数-3.75表示的例子帮助理解:

    (1) 首先转化为2进制表示

    −3.75=−(2+1+1/2+1/4)=−1.111×2^1

    (2) 整理符号位并进行规格化表示

    −1.111×2^1=(−1)^(1)×(1+0.1110 0000 0000 0000 0000 000)×2^1

    (3) 进行阶码的移码处理 
    (−1)^(1)×(1+0.1110 0000 0000 0000 0000 000)×2^1
     
    =(−1)^(1)×(1+0.1110 0000 0000 0000 0000 000)×2^(128−127)

    于是,符号位S=1,尾数M为1110 0000 0000 0000 0000 000
    阶码E为12810=1000 00002
    ,则最终的32位单精度浮点数为

    1 1110 0000 0000 0000 0000 000 1000 0000

    例题
    1. 问题: 若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。
    解:将16进制数展开后,可得二进制数格式为

    在这里插入图片描述

    指数e=阶码-127=10000010-01111111=00000011=(3)10
    包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011
    于是有
    x=(-1)^S X 1.M X 2^e=+(1.011011) X 2^3 = +1011.011=(11.375)10

    2. 问题: 将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。
    解:首先分别将整数和小数部分转换成二进制数:
    20.59375 = 10100.10011
    然后移动小数点,使其在第1、2位之间
    10100.10011 = 1.010010011 X 2^4 e = 4
    于是得到
    S = 0, E = 4 + 127 = 131, M = 010010011
    最后得到32位浮点数的二进制存储格式为
    0100 0001 1010 0100 1100 0000 0000 0000 = (41A4C000)16
     

    浮点数表示范围:

    通过上面的规格化表示,我们可以很容易确定浮点数的表示范围:

     

    float range

     

    既然有表示范围,那肯定也有不能表示的数值: 
    首先来说明溢出值,如下图: 

    float overflow

     

    (1)无穷值:

    如果指数E=11111111(2)=255(10)
    且尾数M=0
    ,则根据符号位S分别表示+∞
    和−∞
    。因此,一个有效的32位浮点数其指数最大只能为254。

    此外,无穷具有传递性,比如

    (+∞) + (+7) = (+∞)

    (+∞) × (−2) = (−∞)

    (+∞) × 0 = NaN

    (2)零值:

    如果指数E=0
    且尾数M=0
    时,表示机器0.需要注意的是,这里的0也是有符号的,在数值比较的时候 +0=−0
    ; 但在一些特殊操作下,二者并不显相等,比如log(x), 1/+0≠1/−0。

    此外,处于负下溢出和负上溢出之间的数值会被直接归为0。

    (3)NAN:

    如果E=0,且尾数M≠0,则表示这个值不是一个真正的值(Not A Number)。NAN又分成两类:QNAN(Quiet NAN)和SNAN(Singaling NAN)。QNAN与SNAN的不同之处在于,QNAN的尾数部分最高位定义为1,SNAN最高位定义为0;QNAN一般表示未定义的算术运算结果,如0/0, ∞×0, sqrt(−1);SNAN一般被用于标记未初始化的值,以此来捕获异常。

     

    浮点数的表示精度

    一般提到浮点数的精度(有效位数)的时候,总是会出现 float的有效位为6~7位, double的有效位为15~16位 。

    下面以float为例,解释一下有效位数是怎样来的。

    有效位数只和规格化浮点数的尾数部分有关,而尾数部分的位数是23位,因此我们首先列出下表

    float overflow

    由上面的表格可以看出:

    2^−23 和 2^−22 之间是存在间隔的,即0.0000001和0.0000002之间的小数我们是没有办法描述的,因此23位尾数最多只能描述到小数点后第7位;此外,我们通过四舍五入可以很容易发现0.0000003=0.0000004=2^−23+2^−22
    , 这表明第7位有效数字只是部分准确。而第6位及之前的都是可以准确描述的,因此我们说float的有

     

    以上内容只是网上内容的总结与整合,所以也不是原创;

    https://blog.csdn.net/qq_43164708/article/details/105178210

    https://www.cnblogs.com/Mayfly-nymph/p/11090241.html

    https://blog.csdn.net/qq_43164708/article/details/105178210

    展开全文
  • 2007-10-31请对计算机中的定点树,浮点数进行如果小数点的位置事先已有...如果小数点位置约定在最高数值的前面,则该数只能是定点小数。 例如,假定用两个字节存放一个定点数,则以定点方式表示的十进制整数195如...
  • 小数定点数据表示

    2021-03-21 21:45:28
    数的定标:确定定点格式中小数点的位置,假设一个16的有符号二进制数,Q=0,那么小数点就定标在LSB,也就是最低位(准确说应该是最低的后面);Q=3,那么就是小数点在从右往左数第四和第三之间。 那么对于N...
  • 定点小数运算 有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算。 所谓定点小数就是把小数点的位置固定,我们要用整数来表示小数。 先以10进制为例。如果我们能够计算12+34=46的话,当然也就...
  • DSP中的浮点小数与定点小数

    千次阅读 2010-01-04 20:18:00
    在DSP世界中,由于DSP芯片的限制,经常使用定点小数运算。所谓定点小数,实际上就是用整数来进行小数运算。下面先介绍定点小数的一些理论知识,然后以C语言为例,介绍一下定点小数运算的方法。在TIC5000 DSP系列中...
  • 定点小数运算 有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算。 所谓定点小数就是把小数点的位置固定,我们要用整数来表示小数。 先以10进制为例。如果我们能够计算12+34=46的话,当然也就...
  • Java库,用于基于long的快速定点算术,最多支持18个小数位。 Javadoc API 特征 定点算术,小数点位数为0到18 基于无标长值的实现 发生算术溢出时引发异常的选项 规模 变量的类型定义比例(通配符类型除外) ...
  • 论述:定点小数

    千次阅读 2019-03-23 22:14:40
    论述:在FPGA中用整数表示小数 更新历史 20190323: 首次发布 现在有一组小数: 在FPGA中,数据是按整数的方式进行存储和运算的。如果要在FPGA中进行小数的存储和运算,首先就需要解决FPGA中小数的表示...
  • 论述:定点小数的运算

    千次阅读 2019-03-24 22:45:37
    目录论述:定点小数的运算十进制下非负定点小数的乘法十进制下非负定点小数的加法十进制下非负定点小数的除法二进制下定点小数的乘法二进制下定点小数的加法二进制下定点小数的除法等等,是不是漏了减法......
  • 十进制小数定点

    2020-08-25 22:26:05
    1、题目 在FPGA中做小数乘法时,一般需要对定点小数量...8bit所能表达的最大的整数为255(注意,定点小数在FPGA运算过程中是没有小数点的,比如12.918,实际存储的是12.918的二进制形式,所以8bit表示小数部分最大为
  • 定点小数与浮点小数

    千次阅读 2015-11-12 21:37:01
    小数有两处表示方法:浮点型与定点型 1. 浮点型 float-point ...例如,以一个字节表示小数,小数点定在5.3位置,高5表示整数,低3表示小数。 11001001 加上小数点之就是11001.001即整数部分为11
  • 但是在某些特定的场合,如多机协同处理等,要求FPGA的输入数据(或者是输出数据)为浮点形式的数据,这是就需要我们来做一个浮点小数与定点小数之间的转换了。 本文为本次定点小数相关博文连载的第五篇,后面的写作...
  • format但该命令不影响数据的储存形式和计算精度format 默认格式format short 5字长定点数format long 15字长定点数format short e 5字长浮点数... hex 16进制format bank 定点货币形式format rat 小数分数表示for...
  • 定点整数,定点小数,浮点数

    千次阅读 2020-08-14 23:51:09
    需要注意的是,定点小数用原码来表示,定点整数用移码来表示,(带符号整数是用补码来表示的,原因在另一文章中有记录。) 我们从浮点数开始说起: 此图为截取慕课网文档素材,32的浮点数编码表示,第0位数...
  • 小数位不够,用0补足位数

    千次阅读 2019-09-09 17:41:47
    我们在很多时候,拿到数据的时候,客户需要我们把数据显示为一套格式,比如格式为几位小数,这时候我们需要对我们从数据库拿出来的数据进行格式的处理,然后传到前端进行显示。这是我写的一个方法和测试案例: @Test...
  • 论述:定点小数的截断与扩充 ...接下来,本文将以十进制下非负定点小数为例,让读者明白为什么要对定点小数进行截断与扩充,然后讲解二进制下符号和有符号定点小数的截断与扩充。 假定在十...
  • SQL精确小数位

    千次阅读 2019-12-13 10:53:15
    SQL精确小数位 可使用round(),cast(),convert(),floor(),ceiling()等函数实现其目的。下面介绍下这些函数的简单使用。 一 、round() 功能:将数值或者字段四舍五入为指定的位数。round()会把小数位后边变成0而不是...
  • 这篇blog有两个关键点,如题,一是关于FPGA或者说HDL是如何执行定点小数运算的;二是verilog和VHDL有符号数运算的解释和对比。 1. 小数计算(定点小数) 1.1 用二进制表示小数 由于FPGA中存在的都是二进制数,...
  • FPGA定点小数运算

    2019-04-27 20:49:46
    定点小数,就是小数点的位置是固定的。我们是要用整数来表示定点小数,由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是浮点数了)。既然没有储存小数点的位置,那么计算机当然就...
  • DSP 定点小数运算

    2011-09-01 17:28:00
    许多DSP芯片只支持整数运算,如果现在这些芯片上进行小数运算的话,定点小数运算应该是最佳选择了,此外即使芯片支持浮点数,定点小数运算也是最佳的速度选择。 在DSP 世界中,由于DSP芯片的限制,经常使用定点小数...
  • seid=6420326887479343502前言在本篇中,你将掌握原码、反码、补码、移码的定义和范围原码、反码、补码、移码的转换定点数:小数点的位置固定 ——常规技术浮点数:小数点的位置不固定 ——科学计数法1 符号数...
  • MATLAB中小数位数的设置方法

    万次阅读 2018-08-07 13:55:18
    format:设置输出格式 对浮点性变量,缺省为format short. ...整型变量总是根据不同的类(class)以合适的数据显示,例如,3数字显示显示int8范围 -128:127。format short, long不影响整...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,352
精华内容 6,140
关键字:

无小数位的定点小数