恭喜,你发布的帖子
发布于 2024-01-11 09:50:56
19楼
不知拆分的目的、用途 是什么?以VW0为例(MW0也是一样的):
1)INT:有符号整数。
1、数据范围:-32768~32767;
2、VW0包含:VB0、VB1,其中VB0为高字节,VB1为低字节;
即:VW0由V0.7、V0.6、V0.5、V0.4、V0.3、V0.2、V0.1、V0.0、V1.7、V1.6、V1.5、V1.4、V1.3、V1.2、V1.1、V1.0组成;V0.7是VW0的最高位、V1.0是VW0的最低位;
3、其中,VW0的高字节VB0的最高位V0.7:是符号位。其余的位 是数据值;
4、V0.7=0,表示VW0保存的数据是正数。V0.7=1,表示VW0保存的数据是负数。
2)数据类型INT的拆分(访问:读、写):
1、按字节拆:VB0、VB1;
2、按位拆:V0.7、V0.6、V0.5、V0.4、V0.3、V0.2、V0.1、V0.0、V1.7、V1.6、V1.5、V1.4、V1.3、V1.2、V1.1、V1.0;
3、按字节、位 拆分:
VB0、V1.7、V1.6、V1.5、V1.4、V1.3、V1.2、V1.1、V1.0;
或:V0.7、V0.6、V0.5、V0.4、V0.3、V0.2、V0.1、V0.0、VB1
4、保存的数据为【正数】时的数据拆分:VW0(保存的数值)=VB0(保存的数值)*256+VB1(保存的数值);
5、保存的数据为【负数】时:VW0(保存的数值)≠ VB0(保存的数值)*256+VB1(保存的数值);
原因1:有符号整数(含:有符号双精度整数)的编码方法:采用的是【补码】;
正数:其补码与原码一致;
负数:其补码在反码的基础上加一(即:在原码的基础上按位取反再加一);
原因2:负数时,符号位(V0.7)为1;
请填写推广理由:
分享
只看
楼主