首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我能把long转换成int吗?

我能把long转换成int吗?
EN

Stack Overflow用户
提问于 2009-05-13 16:15:22
回答 6查看 241.9K关注 0票数 166

我想要将long转换为int

如果long的值> int.MaxValue,我很乐意让它回绕。

最好的方法是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-13 16:17:05

(int)myLongValue就行了。它将在unchecked上下文(这是编译器的默认设置)中执行您想要的操作(丢弃MSB并获取LSB)。如果值不适合int,它将在checked上下文中抛出OverflowException

代码语言:javascript
复制
int myIntValue = unchecked((int)myLongValue);
票数 239
EN

Stack Overflow用户

发布于 2009-05-13 16:17:52

代码语言:javascript
复制
Convert.ToInt32(myValue);

虽然我不知道当它比int.MaxValue更大的时候它会做什么。

票数 43
EN

Stack Overflow用户

发布于 2014-08-21 13:35:47

最安全和最快的方法是在强制转换之前使用位掩码...

代码语言:javascript
复制
int MyInt = (int) ( MyLong & 0xFFFFFFFF )

位掩码( 0xFFFFFFFF )值将取决于Int的大小,因为Int的大小取决于机器。

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

https://stackoverflow.com/questions/858904

复制
相关文章

相似问题

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