回复:Word是数据类型吗?

VOLLMER

  • 帖子

    1248
  • 精华

    41
  • 被关注

    47

论坛等级:奇侠

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2012-12-04 11:40:40

62楼

quote:以下是引用Automann在2012-12-04 11:27:31的发言:
quote:以下是引用VOLLMER在2012-12-04 09:38:36的发言:
好热的帖子,我也来掺和几句,说说我的理解。
1、word是数据类型,但不是数值类型,而是16位长度的位串。和byte、time date tod dt以及string一样,可以没有数值的内涵的,所以取值范围也用0-16#ffff表示,而不是 -32768-32767。
2、前段时间用LAD写ob86时,需要做判断,很周折。但一想,进入事件、离开事件、地址代号只是个代码而已,不是数值,无法做数值比较,也就释然了。
3、若是用STL写那段程序,可以直接比较。但==I 毕竟是数值比较指令,这样做实际上是把word当做int使用,虽然达到了比较的目的,但这一步是没有物理意义的。
4、stl scl可以直接做word类型的运算比较,可编译通过,不知道有何作用。我一直觉得word做数值运算很凶险,因为工具不对,很可能造成不可预期的后果,却不能利用编译器排查。
5、自己写子程序的话,表示数值的用肯定用int类型。至于lib中的数值用word状况,我现在把它理解成不够完美。(或许以后才能正确理解,piw是数值吗?iw0是数值吗?ib0比ib1大,有什么意义?嘿嘿)。怎么办?要么不用、要么妥协,多用一次转换呗。再者用绝对地址也是一种妥协吧?

1. word是数据类型,当然也是“数值类型”,难道0-16#ffff不是“数值的内涵”吗?
白马也是马,无符号数也是数。
2. “进入事件、离开事件、地址代号只是个代码而已,不是数值”?代码也是数值。
“无法做数值比较”吗?用STL可以比较,用LAD的符号地址将它传送到绝对地址,剥掉数据类型的外衣,也能比较。
3、“虽然达到了比较的目的,但这一步是没有物理意义的”,OB86的局部变量就包含了物理意义,比较得出的结论怎么会没有物理意义?
4、“stl scl可以直接做word类型的运算比较,可编译通过”,WORD数据类型的数装入累加器,累加器相当于一个绝对地址的存储单元,数据类型的属性消失,CPU把它当作INT类型来比较。
5. “至于lib中的数值用word状况,我现在把它理解成不够完美”?我认为是否完美,主要看编程是否方便。也就是少让万版主感觉吃了**。


1、加引号的“数值类型”是什么意思?我从未在任何手册的数值类型列表中见到word
2、我还是认为对word进行大小比较没有意义。判断相等只是特例,是每个bit都相同而已。还是中断源,事件16#38和16#39的大小有意义吗? 38斤比39斤轻才有意义
弱者道之用。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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