CABAC编码-十进制到二进制

时间:2019-03-29 16:44:49

标签: encoding floating-point binary

在该网站http://www.bilsen.com/aic/cabac.shtml上,有一个很好的示例说明了算术编码的工作方式。让我烦恼的一件事是:

0.647705

已转换为此:

0.101001011101?

很明显,这不是从“典型”十进制到二进制数字的转换。

1 个答案:

答案 0 :(得分:1)

0.647705 • 2 = 1 + 0.295410.
0.295410 • 2 = 0 + 0.590820.
0.590820 • 2 = 1 + 0.181640.
0.181640 • 2 = 0 + 0.363280.
0.363280 • 2 = 0 + 0.726560.
0.726560 • 2 = 1 + 0.453120.
0.453120 • 2 = 0 + 0.906240.
0.906240 • 2 = 1 + 0.812480.
0.812480 • 2 = 1 + 0.624960.
0.624960 • 2 = 1 + 0.249920.
0.249920 • 2 = 0 + 0.499840.
0.499840 • 2 = 0 + 0.999680.

产生的位序列是1 0 1 0 0 1 0 1 1 1 00。然后,由于我们停在最后一位,因此我们看到余数.999680大于½,因此我们对最后一位从0到1。结果是.1010010111101。