⑴ java中long類型是8位元組,64位的,為什麼long b = 0xfffffffff;(7個f)會提示越界錯誤呢
那不僅是7個f,你自己數一下。此時如果想不報錯,在數字的後面加 L,小寫也可以,但不建議,因為容易和1混淆。
⑵ java的long_max什麼意思
long_max 指long類型的最大值,對應的是long_min
⑶ java 都說long最大64位,但是為什麼在處理2進制轉換為long型時,只能轉換19位數字
所謂的二進制是只有0和1 而十進制是0-9,long 64位表示的是二進制64位,比如4個二進制0001表示十進制數1,0010表示十進制2
⑷ JAVA 中long型超過最大值該怎麼辦後用java程序怎麼寫讓它返回原來的值
精度變了之後沒法子變回去,如果是超過了long型的最大值,可以用BigDecimal類型,他的精度要比long型高,具體的你可以自己查查
⑸ Java基本類型中的long存儲范圍是多少
-9223372036854775808~9223372036854775807
publicclassHello{
publicstaticvoidmain(String[]args){
System.out.println(Long.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
longminValue=0x8000000000000000l;
longmaxValue=0x7fffffffffffffffl;
System.out.println(minValue);
System.out.println(maxValue);
}
}
在java中long型是64位的。
⑹ 1 JAVA已知long型的最大值為9223372036854775808,求9223372036854775808+9223372036854775808 為什麼等於-
溢出了
long最大不是9223372036854775808而是9223372036854775807
因為最高位是符號位,兩個相加就溢出了,符號位本來是正,所以是0,但是相加後溢出,符號位變成1,所以就成負數了
Long.MAX_VALUE=9223372036854775807
其二進制值為:0x7FFFFFFFFFFFFFFF,因為最高位是0,留給符號位,其他位為1
如果讓Long.MAX_VALUE+Long.MAX_VALUE
則看二進制值,相當於左移一位,變成:
0xFFFFFFFFFFFFFFFE
最低位為0,其他位為1,第一位符號位為1,則為負數,下面各位取補碼,即取反+1,得0x10,為2,所以結果是-2
⑺ java中long類型的取值范圍到底是多少呢
范圍:-9223372036854775808到9223372036854775807
解釋:long類型是64位的也就是 」-2^64「 到」2^64 -1「.
在定義long類型時,如果數據類型超過int類型的取值范圍,數據後面要加l或L,不超過則不需要加。
byte的取值范圍為-128~127,佔用1個位元組(-2的7次方到2的7次方-1)
short的取值范圍為-32768~32767,佔用2個位元組(-2的15次方到2的15次方-1)
int的取值范圍為(-2147483648~2147483647),佔用4個位元組(-2的31次方到2的31次方-1)
long的取值范圍為(-9223372036854774808~9223372036854774807),佔用8個位元組(-2的63次方到2的63次方-1)。
⑻ java中long類型的取值范圍到底是多少
范圍:-9223372036854775808到9223372036854775807
解釋:long類型是64位的也就是 」-2^64「 到」2^64 -1「.
⑼ java 強類型轉換 long最大值 到int long l = Long.MAX_VALUE; int i = (int)l; 請問i值,為什麼高手回答
因為long 型整數是64位 而Int 型整數是32位
int f = (int)d; 當你把一個long型整數強制轉化為一個Int型整數時,只能截取最低的32位
而Long.MAX_VALUE在Java中的值是2的63次方,即011111111111111(63個1) 最前面的是符號位 0為正數,1為負數,int截取了後面的32位數 為111111111(32個1) 這個值就是-1,因為負數是用補碼表示的111111111(32個1) 正好就是-1的補碼,所以 最終的結果就是-1.
至於Double類型,因為其在內存中存儲的方式與int型有很大區別,就需要另外考慮了.