首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >隐式转换会失去信息吗?

隐式转换会失去信息吗?
EN

Stack Overflow用户
提问于 2019-07-30 18:37:14
回答 1查看 482关注 0票数 4

根据https://www.learncpp.com/cpp-tutorial/44-implicit-type-conversion-coercion/

“重要的是要记住,晋升总是安全的,不会有任何数据丢失。”

然而,https://www.geeksforgeeks.org/type-conversion-in-c/指出:

隐式转换可能会丢失信息,符号可能会丢失(当签名被隐式转换为无符号时),并且可能会发生溢出(当long被隐式转换为float时)。

我知道隐式转换是安全的,但我不认为数据丢失会导致什么结果。哪个是准确的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-30 18:41:22

第一篇文章讨论晋升,这是一种特定的隐式转换。还有其他类型的转换,也是隐式转换,但不是晋升。提升是一种特定类型的隐式转换,它不会丢失信息,因为您总是要转到一个更广泛的类型,也就是说,被提升类型所表示的所有值都可以由提升类型表示(例如,int -> long long)。

其他隐式转换包括:从有符号转换到无符号转换、收缩转换、从浮点转换到整数转换。这些转换可能会丢失与晋升不同的信息。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57278113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档