定点数和浮点数在STM32单⽚机中使⽤傅⾥叶(FFT)变换的理解
定点数和浮点数的区别
浮点数的基数什么意思⽬的:理解定点数和浮点数在傅⾥叶变换(FFT)的实际应⽤中的选择
单⽚机中如果需要进⾏⼀定的运算(常见的傅⾥叶变换)时,需要在不同情况下对AD采集的数据进⾏⼀定的处理才能得到正确的傅⾥叶变换后的数据,那么,选择正确的处理⽅式时,⾸先要解决的是定点数和浮点数的问题。
如果使⽤过单⽚机的同学,⼀定会知道定点运算和浮点运算两个概念,那么,定点运算和浮点运算究竟是什么呢?
定点数的概念:
定点数字⾯意思就是数字是固定的,这⾥指的是数据在计算机中存取的位数是固定的,也就是说,给你⼀个数,存放在计算机中的位数是固定的。对于定点数来说,他是有局限性的,举例(eg):
假设你要表⽰⼀个整数(假设是⼆进制的 110 0101),假设你使⽤的是8位的定点数表⽰,则为:
(0110 0101)前⾯的最⾼位是:0,这个位代表的是表⽰的数是正数还是负数,(0 代表正数,1代表负数)。
现在假设你要表⽰⼀个⼩数(假设0.625),且整数部分为0,那么在计算机中如何⽤8位的定点数表⽰呢?
0.625=0.5+0*0.25+0.125=(.101)
那么⽤定点数表⽰:(0101 0000),同样的,最⾼位(bit8)表⽰的是正数还是负数,后⾯的101 0000代表的是数据值,这样在实际的计算中,计算机就可以正确的理解数字的表⽰⽅法。
注:定点负数表⽰⽅法分为3步:
1.求正⼆进制数
2.取反+1
3.最⾼位置1
eg(-106):
⽤8位定点数表⽰:
——1.(106)=110 1010
——2. (110 1010)取反+1===》(001 0101)+(1)=(001 0110)
——3. ⾼位置1(1001 0110)
这样就可以正确表⽰出⼀个负整数了。
浮点数的概念:
根据上述可知,假设你需要表⽰⼀个⼩数,且⼩数带有整数部分和⼩数部分,那么需要这么表⽰呢?
因为计算机并没有⼀个可以表⽰ “.” ⼩数点的东西,所以我们需要规定⼀种表⽰的⽅式,即:指数表⽰⽅式:
假设需要表⽰的是:(56.125),这种类型的数我们在计算机中则代表的是⼀个浮点数(有⼩数和整数部分组成),那么他是如何在计算机中表⽰的呢?
⾸先:将560.125变换成 5.60125*10的2次⽅.那么在计算机中规定了(尾数、基数、指数、三个概念)
,其中5.60125代表的是尾数,10代表的是基数,2次⽅代表的是指数。
这种⽅式就可以在计算机中代表任意的数字了。浮点数可以代表更多类型的数字,在实际的使⽤和计算的时候也相对更加精确。
以上是关于定点数和浮点数的介绍,后续将会继续完善和修改。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。