登录
首页
PLC论坛
PLC论坛
回帖
发帖
正文
主题:请教--怎样根据溢出位计算出结果
点击:1145 回复:5
楼主
编辑
引用
管理
蝶舞
请教一下比如32767+4=-32765 溢出位ON 怎样根据溢出位计算出结果+32771呢。
最后修改:
2010/8/25 15:45:18
10-08-25 15:40
1楼
编辑
引用
管理
cvlsam
你首先要解决16位存储空间如何存放大于32767的符号整数的问题,才能解决上述的问题。
其次,如果需要用32位来存储,那么转换为长整型数不就可以了?
Regards
10-08-25 17:03
2楼
编辑
引用
管理
蝶舞
这只是作为一种思维的延伸,想了好久也没想出来,比如,D0里面是+32767 D1里面是+4 相加后结果放D2里面,这时D2的结果必然是-32765,溢出位必然ON,然后根据溢出位把D0加D1变成长整形放D4里面,当然要是没溢出就不计算了,结果就放D2里面了。
10-08-25 17:44
3楼
编辑
引用
管理
cvlsam
引用
蝶舞
在 2010/8/25 17:44:49 发言
【内容省略】
难道你在运算前,要为每个D区域都留一个空位出来,以保证能扩展为32位?
那直接用32位岂不是更好?
如果不留空位,那么扩展后导致后续数据丢失,程序混乱你又如何去避免呢?
Regards
10-08-25 20:47
4楼
编辑
引用
管理
蝶舞
谢了C侠的回答,32767+4=-32765 我的意思是能不能找到一种规律把-32765变成32771,知道一般这样的情况都用双整。
10-08-26 10:47
5楼
编辑
引用
管理
cvlsam
32771已经溢出了,超过了存储单元的存储范围,数据失真了,已经无意义了……作为程序员,你应该多考虑一下如何去确保不溢出。
Regards
10-08-26 11:18
工控新闻
和利时亮相制造业数字化转型促进中心 “深度行”(四川站) 以 XMagital 赋能电子信息制造智改数转
“小米系”具身智能公司,获数亿元B+轮融资
多部门联合发布系列国家标准 人工智能终端迎来“体检表”
火热报名中 | 走进字节 · 智能AI产业落地主题分享会即将启幕,抢先锁定席位!
施耐德电气熊宜:搭平台、选场景、聚能力——AI破局的三重法则
e络盟现已发售 Microchip 全新 PIC32CM PL10 微控制器,以 8 位简易设计实现 32 位性能
施耐德电气:告别千万美元成本代价,开放自动化解锁企业降本增效新路径
柯马与欧姆龙机器人达成战略合作,拓展轻工、电子及医疗行业先进自动化解决方案
更多新闻资讯