日期:2014-05-20  浏览次数:20706 次

哥哥姐姐过来看啊 <<符号这样用 下面两句得出个什么呢?到底该怎么理解啊?
static   boolean   won[]   =   new   boolean[1   < <   9];
        static   final   int   DONE   =   (1   < <   9)   -   1;
won[]、DONE的初值该怎样理解?



------解决方案--------------------
int tmp = 1 < <9 = 1000000000(2)=2^9
然后new一个数组boolean won[] = new boolean[tmp]

后面那个就是一个int而已
------解决方案--------------------
static boolean won[] = new boolean[1 < < 9]; 先计算出要分配的长度1 < < 9,然后再分配。1 < < 9是指把1的二进制码实现左移9位,左移一位,相当于乘上2, 即为1 × 2的9次方,结果为512, 因为2的10次方为1024.

static final int DONE = (1 < < 9) - 1;跟上面差不多,先把1左移9位,结果减1,然后赋值给DONE.
------解决方案--------------------
“ < <”是移位操作符
用来操作2进制数的,
1 < <9就是将1的二进制数左移9位
本来1的二进制表示为0000000001
左移9位变为1000000000
就是1楼说的2的9次方

第二个同理