C#中a long和a之间的实际区别是什么int?据我所知,在C/C++中,一些64位平台上的长度是64位(当然取决于操作系统)但是在C#中它们都在.NET运行时运行,所以有实际的区别吗?
另一个问题:可以int持有long(通过演员表)而不会丢失所有平台上的数据吗?
the*_*oop 69
an int(System.Int32在运行时内)在任何平台上始终是带符号的32位整数,a long(aka System.Int64)在任何平台上始终是带符号的64位整数.因此,您无法在不丢失数据的情况下long使用值高于Int32.MaxValue或低于某个值Int32.MinValue进行转换.
Ant*_*wan 21
int in C#=> System.Int32 => from -2,147,483,648 to 2,147,483,647.
long in C#=> System.Int64 => from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
如果您的长数据超出int的范围,并且您使用Convert.ToInt32然后它将抛出OverflowException,如果您使用显式强制转换,则结果将是意外的.
int在.NET中是32位.long是64位.这是有保证的.所以,不,一个int不能长时间不丢失数据.
有一种类型,其大小根据您运行的平台而变化,即IntPtr(和UIntPtr).这可以是32位或64位.
当然是有区别的 - 在 C# 中,long 是一个 64 位有符号整数,一个 int 是一个 32 位有符号整数,而且它永远都是这样。
所以在 C# 中,long 可以容纳 int,但 int 不能容纳 long。
C/C++ 这个问题是平台相关的。
| 归档时间: |
|
| 查看次数: |
59637 次 |
| 最近记录: |