看了老外编写的一段程序中有以下程序段:
L "DB303_CONFIG_MISURE_ASSI".ASSE_X.NUM_SISTEMA_MISURA_X; //DB303.DBW14 (BCD)
BTD ;
L 100;
/I ;
T "DB080_CNFG".NUM_SISTEMA_MISURA_X; //DB80.DBW12
经过仿真发现8位BCD码(最大值C#99)转换成32位双整型值后,除以100,相当于左移16位,非常有趣:

不知老外为什么这样编程,请哪位大侠能解释一下其中的奥妙!
可以进一步推广出以下规律:
4位BCD码(最大值C#9)转换成32位双整型值后,除以10,相当于左移16位:

12位BCD码(最大值C#999)转换成32位双整型值后,除以1000,相当于左移16位: