java中int型佔據32位,long型佔據64位,那麼當定義一個long型的二進制數時,如果不滿64位,前面會自動補0,所以,哪怕定義的二進制數是32位的,首位也不是符號位了。
public class TestLong {
public static void main(String[] args) {
// 如果定義一個32位的long類型.那麼首位的1不會是符號位,所以它的值是 2的31次方+2的一次方+2的0次方;
long val = 0B10000000000000000000000000000011L;
System.out.println(val); // 2147483651
}
}