为什么一个32位的双整型值除以100相当于左移16位

已锁定

老学童

  • 帖子

    765
  • 精华

    32
  • 被关注

    64

论坛等级:奇侠

注册时间:2011-06-22

钻石 钻石 如何晋级?

为什么一个32位的双整型值除以100相当于左移16位

7675

44

2014-04-09 18:02:26

看了老外编写的一段程序中有以下程序段:
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位:


为什么一个32位的双整型值除以100相当于左移16位 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。