t******l 发帖数: 6 | 1 正在准备SCJP 看见2个这样的问题
1.请问在JAVA里可以直接PRINT出二进制数么?
比如想知道: -64>>2 最后结果用二进制如何表示的
可以通过System.out.println 或者类似的语句输出二进制数么?
2. Evaluation Order
比如有这么一段程序:
class orderTest
{
public static void main(String[] args)
{
int[] a = {4,4};
int b = 1;
a[b]=b=0;
System.out.println("a["+b+"] is " + a[b]);
System.out.println("b is "+b);
}
}
最后运行结果是:
a[0] is 4
b is 0
请问Evaluation order到底是怎么样子的,最后为什么会得出这样的结果呢?
Thanks.. |
M****s 发帖数: 429 | 2 a[b]=b=0
是从右向左执行的
所以是这样的结果
这是因为=operator是右结合的
【在 t******l 的大作中提到】 : 正在准备SCJP 看见2个这样的问题 : 1.请问在JAVA里可以直接PRINT出二进制数么? : 比如想知道: -64>>2 最后结果用二进制如何表示的 : 可以通过System.out.println 或者类似的语句输出二进制数么? : 2. Evaluation Order : 比如有这么一段程序: : class orderTest : { : public static void main(String[] args) : {
|
F****n 发帖数: 3271 | 3 1. Use Integer.toBinaryString()
2. priority of [ ] is higher than =, so it is a[1] that is 0.
给
【在 t******l 的大作中提到】 : 正在准备SCJP 看见2个这样的问题 : 1.请问在JAVA里可以直接PRINT出二进制数么? : 比如想知道: -64>>2 最后结果用二进制如何表示的 : 可以通过System.out.println 或者类似的语句输出二进制数么? : 2. Evaluation Order : 比如有这么一段程序: : class orderTest : { : public static void main(String[] args) : {
|