quote:以下是引用冬日在2012-12-02 00:25:45的发言:quote:以下是引用Automann在2012-11-30 14:07:41的发言:quote:以下是引用mengcg在2012-11-30 13:43:03的发言:
WORD和INT都是16位的数据类型,无符号时是否通用,数值范围一样吗?
WORD是无符号数(0~65535),INT是有符号数(-32768~32767),当然不能通用。
Word说是0-65535,但是既然是word,就不能进行任何数*算了,所以这个0-65535其实没有什么意义,word的最大表示的范围就是2的16次方,而int的范围是-32768-32767,最大的表示范围也是2的16次方。我倒是更愿意理解把word和int都理解成16位的容器。用stl语言时,不管你定义成int还是word,程序代码一样,结果也一样。比如如下代码,不管你把mw100定义为word还是int,过程一样,结果也是一样
L L#40000
T MW 100
L MW 100
T MD 102
Dwrod,Dint或者real也是一样
L 4.1234
T MD 110
L MD 110
T MW 114
所以16位就是16位,32位就是32位,不管是word,dword,int,dint,time,s5time,bcd等等数据格式都是人为定义的,他代表什么含义的看他在什么场合用。
比如0.1这个数,你把它存在md0,那么md0的值就是2#0011_1101_1100_1100_1100_1100_1100_1101
这个时候你用word理解是一个值,用双整是一个值,到底什么值就看你了。卡扎菲有人说是英雄,也有人说是狗熊,还有人说是笨蛋,总有有人说他是天才!
我说的“WORD是无符号数(0~65535)”是针对我引用的mengcg的帖子“WORD和INT都是16位的数据类型,无符号时是否通用,数值范围一样吗?”,隐含的WORD是作为数据类型来用。更准确的表述为“作为数据类型的WORD是无符号数(0~65535)”。
我可能需要反复强调我在楼顶说的
“ WORD(字)常用来说明数据的长度,和字节一样,相当于一个量词。但是WORD是个多义词,除了用来作量词外,还用来作数据类型用。”
作为量词,WODRD是指数据长度为16位(一个字),这和冬侠所说的“容器”是一个意思。这个容器可以装word、int、s5time等数据类型的数。
数据类型是什么?我讲过数据类型是人为规定的数据一个属性。再打个比喻:有不良小贩把白色的小鸡染成五颜六色来骗小孩。放到水里一洗就变白了。小鸡就是数据,染的颜色就是数据类型。把定义了数据类型的数据装入绝对地址MW10或累加器(累加器也是一个特殊的绝对地址),数据类型的属性就被剥去了,只剩下*裸的数据了,就像小鸡的颜色被水洗掉了一样。这时可以把数据当作允许长度的各种数据类型来用。
除了否认WORD是数据类以外,我和多数人的观点没有矛盾。但是千万记住我的基本观点: WORD是个多义词!!!!!