递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1009|回复: 2
打印 上一主题 下一主题

[视窗] 不知道是不是BUG,长短整数相加溢出未报错,给了错误答案

[复制链接]

1

主题

3

帖子

13

积分

新手上路

Rank: 1

积分
13
跳转到指定楼层
楼主
发表于 2024-8-11 00:25:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<火山程序 类型 = "通常" 版本 = 1 />

变量 局_数据1 <类型 = 整数 值 = 100>
变量 局_数据2 <类型 = 长整数>
局_数据1 = 2000
局_数据2 = 88000

变量 局_数据3 <类型 = 长整数>
变量 局_数据4 <类型 = 短整数>

局_数据3 = 局_数据2 + 局_数据1
调试输出 (局_数据3)
// 局_数据4 = 局_数据2 + 局_数据1    错误: 将"长整数"数据类型数据转换到"短整数"时存在数据精度损失的情况
// 局_数据4 = (整数)局_数据2 + 局_数据1    错误: 将"整数"数据类型数据转换到"短整数"时存在数据精度损失的情况
局_数据4 = (短整数)局_数据2 - (短整数)局_数据1
调试输出 (局_数据4)
-------------------------------------------------------------------------------------------------------

--- 开始调试当前项目"第三课"编译后的结果文件"D:\huoshansc\_int\第三课\debug\x64\linker\第三课.exe"
正在启动被调试程序
90000
20464
[内存监测]: 在缓存池中峰值分配内存块数/缓存池总尺寸(预分配块数): 2 / 16384 , 总共分配了 5 次内存,有 4 次在缓存池中分配,比例为 80% .
被调试程序已经退出,退出码为0x0.
调试已经停止



20464哪来的?

回复

使用道具 举报

22

主题

285

帖子

1997

积分

金牌会员

Rank: 6Rank: 6

积分
1997
QQ
沙发
发表于 2024-8-11 00:40:16 | 只看该作者
88000早超过短整数范围了,强转肯定丢失精度
88000 = 0x157C0 强转短整数等于0x57C0 = 22464
最后-2000你说值是多少
回复

使用道具 举报

1

主题

3

帖子

13

积分

新手上路

Rank: 1

积分
13
板凳
 楼主| 发表于 2024-8-11 00:47:09 | 只看该作者
793359277 发表于 2024-8-11 00:40
88000早超过短整数范围了,强转肯定丢失精度
88000 = 0x157C0 强转短整数等于0x57C0 = 22464
最后-2000你说 ...

额,是这么个强转法!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 05:20 , Processed in 0.091472 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表