签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
如图:
1、我是想试一下将MD14的数据传给MW18,整数是有符号数,当我把MD14值改为32767时MW也为32767,显示正常,输入32768时超出整数范围,MW182进制符号位为1,MW18数值为-1,这个是否属于数据溢出?
2、当我把MW18数据类型改为“字”时,按理说最大的数据储存应该是65535吧,可为什么我输入65535时MW18的值却变成-1了呢,请大神们指点一下,谢谢。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1658495&b_id=4&s_id=0&num=11
疯了,研究半天了。
300有双整数转整数指令????????只要整数变双整数啊?你怎么写的程序?
这个不叫溢出,第一位是符号位,负数时左第一位为1(BIT 15)
1、数据为32768时是数据溢出了,超出它存取的长度了(整数)
2、数据显示为-1(这里你用的还是整数,字是0-65535),你看的还是整数,不是字
3、这里你要用的话,最好双整数转整数,不要用MOVE指令,会出现溢出的
用传送就行了....... 1,你用的仿真吧?再重新下载一次程序,,,,2,你以什么格式的输入就用什么格式的输出.......3,官方的举例字类型基本上都是16进制显示的,,,可能就是为了避免这个问题.....你换16进制输出看看,, 把你写的程序上图,,交叉引用都发上来
1、是用的仿真,程序反复下了很多次;
2、格式的输入与输出,我不是很理解、、、我的目的就是想看下从32位转换为16位时,在不溢出的情况下看数据是否一样,按理说字的最大范围不应该是65535么?当MD14MOVE给MW18时为什么一超出32767就变负数了?(整数是-32768~32767),
3、可我在符号表中把MW18定义为字了啊,为什么MW18还存在符号位?
4、试了下换16进制的,就是这个结果。
你定义成int变量时最高位为1时就是负数了,你如果想显示成正数,那么你应该是定义成word,
你显示也应该按word显示呀!你监控显示成dec就是按int类型的数据显示了。
谢谢前辈,我试了下二进制,和十六进制,都正常,请问这是为什么呢?WORD字不能用十进制显示么?那同理,是不是双字也不能用某一进制显示?请推荐个相关资料,谢谢,我先度娘查一下。
word只支持2进制和16进制,你可以看一下1200的基础数据类型。
十进制实际就是int,二进制的最高位被看成符号位了,所以你最高位为1就认为是负数了。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录