【发布时间】:2011-10-21 17:47:06
【问题描述】:
我需要将BigDecimal 紧凑地编码为ByteBuffer 以替换我当前的(垃圾)编码方案(将BigDecimal 编写为UTF-8 编码的String,前缀为表示String 的字节长度)。
鉴于BigDecimal 实际上是一个整数值(在数学意义上)和一个相关的比例,我计划将比例写为单个字节,后跟一个VLQ encoded 整数。这应该足以涵盖预期值的范围(即最大比例 127)。
我的问题:当遇到诸如 10,000,000,000 之类的大值时,显然最好将其编码为值:1,比例为 -10,而不是整数 10,000,000,000,比例为 0(这将占用更多字节)。如何确定给定BigDecimal 的最佳比例? ...换句话说,我如何确定我设置的最小可能比例分配BigDecimal 而无需执行任何舍入?
请不要在您的回答中引用“过早优化”一词 :-)
【问题讨论】:
-
我不会,因为我称之为过早优化zation :-)
-
好吧,至少你没有编辑我的问题。
标签: java math bit-manipulation bigdecimal