一道简单的笔试题_浮点数无损定点化

2020-08-18 10:46:07 浏览数 (1)

浮点数无损定点化

量化为定点数格式:m位定点数,n个小数位,无符号位,那么n称作量化系数

对于0111表示的定点数:

如果设定小数点位于最后一位,即0111. 则其表示7,最大精度1;

如果设定小数点位于后一位的,即011.1 则其表示3.5,最大精度0.5;

如果设定小数点位于后二位的,即01.11 则其表示1.75,最大精度0.25;

由上可得:

  • 小数位数越多,表示的精度越高。若小数点后有n位,则其表示的最大精度为1/(2^n)
  • 整数位数越多,可表示的最大值越大。

某疆笔试题

对12.918做无损定点化,首先需要确定对整数部分的量化位数。整数为12,无损量化4bit;小数部分为0.918,假如采用12bit位宽,整数部分4bit,那么小数部分只有8bit。

其实,无论有多少小数位,2进制编码的精度都是以5结尾的,因此2进制编码并不能完全无损的表示任意小数,但是根据数学上误差的概念只要误差小于精度的一半,就可以认为是“无损”的了。

如果小数位用8位表示,0.918*2^8=235.008取整,舍弃0.008,235即为对0.918做8bit量化后的整数值。

对235进行反量化:235/2^8=0.91796875,得到量化误差0.918-0.91796875=0.00003125,而精度为1/(2^8)=0.00390625, 量化误差小于精度的一半,满足“无损条件”。

如果小数位用7位表示,0.918*2^7=117.504取整,舍弃0.504, 117即为对0.918做7bit量化后的整数值。

对117进行反量化:117/2^7=0.9140625,得到量化误差0.918-0.9140625=0.0039375,而精度为1/(2^7)=0.0078125, 量化误差大于精度的一半,无法无损量化。

故答案选择 D

下面某疆题

同理:答案选择 A

0 人点赞