深圳市福田区福保街道福保社区桃花路3号国资国企产业创新中心7层 13136231190 youxi@j9.com

新闻中心

固定字节的数值格式如何取舍范围与精度:三种小数精度的十个数值编码(实例23)

2026-11-05

同样用一个有符号字节表示位置,留给小数的位越多,步距越细,但可表示的最大绝对范围也越小。只看小数位数,很容易忽略越界后的误差。

先确定规则与输入

整数编码范围固定为负一百二十八到一百二十七,分别比较一、三、五位小数。先把数值乘二的小数位数次方,再取最近整数,恰好半格时取较大的整数,最后限制到编码范围,读取时除回相同比例。

三种格式都只使用八位有符号整数,半格一律取较大整数。

逐项算出过程

小数位1,原值459/32,放大为459/16,最近整数29,存储码29,读回29/2,误差5/32,范围限制False。

小数位1,原值9/16,放大为9/8,最近整数1,存储码1,读回1/2,误差-1/16,范围限制False。

小数位1,原值-365/32,放大为-365/16,最近整数-23,存储码-23,读回-23/2,误差-3/32,范围限制False。

小数位1,原值-347/32,放大为-347/16,最近整数-22,存储码-22,读回-11,误差-5/32,范围限制False。

小数位1,原值-223/32,放大为-223/16,最近整数-14,存储码-14,读回-7,误差-1/32,范围限制False。

小数位1,原值59/16,放大为59/8,最近整数7,存储码7,读回7/2,误差-3/16,范围限制False。

小数位1,原值-1/64,放大为-1/32,最近整数0,存储码0,读回0,误差1/64,范围限制False。

小数位1,原值1/64,放大为1/32,最近整数0,存储码0,读回0,误差-1/64,范围限制False。

小数位1,原值127/32,放大为127/16,最近整数8,存储码8,读回4,误差1/32,范围限制False。

小数位1,原值129/32,放大为129/16,最近整数8,存储码8,读回4,误差-1/32,范围限制False。

小数位3,原值459/32,放大为459/4,最近整数115,存储码115,读回115/8,误差1/32,范围限制False。

小数位3,原值9/16,放大为9/2,最近整数5,存储码5,读回5/8,误差1/16,范围限制False。

小数位3,原值-365/32,放大为-365/4,最近整数-91,存储码-91,读回-91/8,误差1/32,范围限制False。

小数位3,原值-347/32,放大为-347/4,最近整数-87,存储码-87,读回-87/8,误差-1/32,范围限制False。

小数位3,原值-223/32,放大为-223/4,最近整数-56,存储码-56,读回-7,误差-1/32,范围限制False。

小数位3,原值59/16,放大为59/2,最近整数30,存储码30,读回15/4,误差1/16,范围限制False。

小数位3,原值-1/64,放大为-1/8,最近整数0,存储码0,读回0,误差1/64,范围限制False。

小数位3,原值1/64,放大为1/8,最近整数0,存储码0,读回0,误差-1/64,范围限制False。

小数位3,原值127/32,放大为127/4,最近整数32,存储码32,读回4,误差1/32,范围限制False。

小数位3,原值129/32,放大为129/4,最近整数32,存储码32,读回4,误差-1/32,范围限制False。

小数位5,原值459/32,放大为459,最近整数459,存储码127,读回127/32,误差-83/8,范围限制True。

小数位5,原值9/16,放大为18,最近整数18,存储码18,读回9/16,误差0,范围限制False。

小数位5,原值-365/32,放大为-365,最近整数-365,存储码-128,读回-4,误差237/32,范围限制True。

小数位5,原值-347/32,放大为-347,最近整数-347,存储码-128,读回-4,误差219/32,范围限制True。

小数位5,原值-223/32,放大为-223,最近整数-223,存储码-128,读回-4,误差95/32,范围限制True。

小数位5,原值59/16,放大为118,最近整数118,存储码118,读回59/16,误差0,范围限制False。

小数位5,原值-1/64,放大为-1/2,最近整数0,存储码0,读回0,误差1/64,范围限制False。

小数位5,原值1/64,放大为1/2,最近整数1,存储码1,读回1/32,误差1/64,范围限制False。

小数位5,原值127/32,放大为127,最近整数127,存储码127,读回127/32,误差0,范围限制False。

小数位5,原值129/32,放大为129,最近整数129,存储码127,读回127/32,误差-1/16,范围限制True。

分别比较步距二分之一、八分之一和三十二分之一。小数位更多时,靠近零的细节更容易保留,但较大的坐标更容易被限制到范围边缘。

复核时看什么

未被范围限制时,读回误差绝对值应不超过半个步距;一旦触及范围限制,就必须单独标记,不能继续套用这一误差界。负数半格的取法也要按已声明的规则执行。

练习时可以先遮住结果,沿用相同输入独立记录中间状态,再逐项比较。发现不同后先定位最早分歧,确认边界包含方式、编号起点、更新顺序以及是否提前取整。最后结果一致也不表示每个中间步骤都正确,因此保留过程记录有助于看清原因。

适用范围

这个模型没有采用某个网络协议的现成格式,也不比较具体处理器性能。真实同步还可能记录相对位置、分区编号或额外精度位。先按实际数值范围设计格式,再决定可接受的量化误差。