【发布时间】:2011-03-18 12:21:51
【问题描述】:
各位,我想了解一下,扩大或缩小隐式转换是如何在 java 内部实现的。我知道这涉及到一些摆弄。
例如:
//implicit
int i =2400;
long a = (long)i;
//Explicit
float d = (float) 2.23423;
更新:
我在看了这个问题后写了这篇文章 在这里张贴Bitshifting to read/write data .Peter Lawrey给出了以下答案。
public long create(int one, int two){
return ((long) one << 32) | (two & 0xFFFFFFFFL);
}
为了重复相同,像上面那样扩大转换发生在机器级别或多或少地与彼得上面提到的类似逻辑相同。
请让我知道您宝贵的 cmets。
【问题讨论】:
-
JLS 第 5 章描述了 Java 中可用的转换类型:[java.sun.com/docs/books/jls/third_edition/html/….它的实现依赖于平台,通常发生在机器代码级别。
-
看看this article关于缩小和扩大原始转换。
标签: java types casting bit-manipulation