恭喜,你发布的帖子
发布于 2019-05-22 16:20:56
6楼
为什么是16#0200才可寻址数组元素1,而16位则是16#80?这个位数没搞明白,烦请老师再解释一下,谢谢
同样是一个DWORD拆分出32个位,SLICE访问,是这个变量正常的顺序,
例如MD0,因为在程序中是MD0=MB0+MB1+MB2+MB3,X31-X0是MB0-MB3的顺序,M3.0是X0,M0.7是X31
而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
对于一个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
请填写推广理由:
分享
只看
楼主