Tipe Data Primitif - dokumen oracle mengatakan kisaran long
di Jawa adalah -9,223,372,036,854,775,808
untuk 9,223,372,036,854,775,807
. Tetapi ketika saya melakukan sesuatu seperti ini di gerhana saya
long i = 12345678910;
ini menunjukkan saya " The literal 12345678910 of type int is out of range
" kesalahan.
Ada 2 pertanyaan.
1) Bagaimana cara menginisialisasi long
dengan nilai 12345678910
?
2) Apakah semua literal numerik berdasarkan jenisnya int
?
java
long-integer
aamadmi
sumber
sumber
Long
- karena tinju otomatis, Anda dapat menggunakanLong i = 12345678910L
, atau menggunakanLong i = Long.valueOf(12345678910L)
untuk kasus-kasus di mana Anda tidak dapat menggunakan tinju otomatis.Jawaban:
L
:long i = 12345678910L;
.BTW: itu tidak harus menjadi huruf besar L, tetapi huruf kecil bingung dengan
1
berkali-kali :).sumber
0x200000000L
0x20000000L
?0x20000000L
akan bekerja tetapi masih dapat diwakili olehint
(integer 32-bit), dengan demikian0x20000000
akan berfungsi juga.0x200000000L
melanggar batas itu, membuat trailingL
diperlukan.Anda perlu menambahkan
L
karakter ke akhir nomor untuk membuat Java mengenalinya sebagai panjang.Iya.
Lihat Tipe Data Primitif yang mengatakan "Huruf integer bertipe panjang jika diakhiri dengan huruf L atau l; jika tidak, itu bertipe int."
sumber
Anda perlu menambahkan huruf besar
L
di akhir seperti ituHal yang sama berlaku juga untuk float
3.0f
Yang seharusnya menjawab kedua pertanyaan Anda
sumber
Untuk menginisialisasi panjang Anda harus menambahkan "L" ke akhir.
Ini bisa berupa huruf besar atau kecil.
Semua nilai numerik secara default
int
. Bahkan ketika Anda melakukan operasi apa punbyte
dengan bilangan bulat apa pun,byte
pertama kali dipromosikan keint
dan kemudian operasi apa pun dilakukan.Coba ini
Anda mendapatkan kesalahan karena
2
secara defaultint
.Oleh karena itu Anda mencoba untuk berkembang biak
byte
denganint
. Oleh karena itu hasil diketikkan keint
mana tidak dapat ditugaskan kembalibyte
.sumber