关于AT的拆分

已锁定

周老板的安

  • 帖子

    465
  • 精华

    0
  • 被关注

    1

论坛等级:侠士

注册时间:2018-11-11

普通 普通 如何晋级?

关于AT的拆分

195

4

2019-06-13 13:41:43

同样是一个DWORD拆分出32个位,SLICE访问,是这个变量正常的顺序,

1,例如MD0,因为在程序中是MD0=MB0+MB1+MB2+MB3,X31-X0是MB0-MB3的顺序,M3.0是X0,M0.7是X31

2,而AT拆分成0..31的BOOL数组,是0..7是第一个字节MB0,是8..15是第二个字节MB1,是16..23是第三个字节MB2,是24..31是第四个字节MB3,数组元素0是M0.0,元素7是M0.7,元素31是M3.7


3,对于一个WORD16#abcd的话是一样的,16#ab对应0..15的BOOL数组的0..7,16#cd对应0..15的BOOL数组的0..15,第16位对应16#cd部分的最高位,所以是16#80(2#10000000),它的高字节是16#00,连在一起是16#0080,而第2位对应16#ab的第二低位,所以是16#02(2#00000010),它的低字节是16#00,连在一起是16#0200



以上是之前以为老师的解释,有几个地方还是没看明白

1,X31-X0是MB0-MB3的顺序,M3.0是X0,M0.7是X31----x是代表位吗?M3.0对应X0,M0.7是X31我想不明白

2,数组元素0是M0.0,元素7是M0.7,元素31是M3.7----怎么理解?

3,16#ab对应0..15的BOOL数组的0..7,16#cd对应0..15的BOOL数组的0..15-----ab对应0..7的话,cd怎么还是对应整个0..15,而不是8..15

4,第16位对应16#cd部分的最高位,所以是16#80(2#10000000)??-----80怎么来的,麻烦解释下


问题有点多,麻烦老师教一下



关于AT的拆分 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

S7-1200精英训练营

共有1962条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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