编译能通过,执行不能通过。        
for(int i=New_IDcard.length();i>=0;i--){
         A[i]=Character.getNumericValue(New_IDcard.charAt(i));
         W[i]=(2^(i-1))% 11;              
         }
请问一下,这段代码有什么问题,我把(New_IDcard.charAt(i))中的i该为一个常数就可以,而且把提到循环外也可以。为什么在循环里加了变量就不行了,请大家帮忙看看!