当前位置:  开发笔记 > 编程语言 > 正文

同类数字类型之间的转换

如何解决《同类数字类型之间的转换》经验,为你挑选了1个好方法。

我正在阅读http://www.cplusplus.com/doc/tutorial/typecasting/.它说:

否则,如果转换是在相同类型的数字类型之间(整数到整数或浮动到浮动),则转换有效,但该值是特定于实现的(并且可能不是可移植的).

但我真的不明白上面引用的意思是什么?有人请用一个简单的例子解释一下吗?为什么在相同类型的数字类型之间进行转换会导致特定于实现的值?是什么原因?



1> VolAnd..:

让我们考虑以下示例:

    long long int lli = 5000000000;
    long int li;
    int i;
    li = lli;
    i = li;

你能预测的值lli,lii?还是lii具有相同的价值?

答案是 - 值取决于为每种类型分配的字节数!即,对于某些情况int是等于long int,对于其他long int情况等于long long int,但一般来说,long类型只是可以更长.相似(内存大小的意义上)的float,doublelong double.


@PravasiMeet实际上这是常见的情况.如果我没有弄错的话,Visual Studio x86和x64以及gcc x86都有sizeof(long)== sizeof(int),如果clang做同样的话我也不会感到惊讶.
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有