一道关于Java的题目
高洛峰
高洛峰 2017-04-18 09:05:54
0
2
375

我实在不懂为什么是-5536

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
伊谢尔伦

Permudahkan

Malah, soalan ini boleh dipermudahkan dan terus

Console.Write("{0}",(short)60000);

Sebab asas

Apabila pembolehubah ditakrifkan sebagai jenis short, nama penuhnya ialah 有符号短整数型 Jenis ini menduduki 2 bait, iaitu jenis word dan julatnya ialah 0x0000 hingga 0xffff, di mana The. nilai tertinggi dari 0x0000 hingga 0x7fff ialah 0, yang bermaksud ia adalah nombor positif. 0x7fffok, maka perpuluhan 0xffff, iaitu heksadesimal
, jelas sekali ialah nombor negatif dan 60000 asalnya ialah nombor negatif EA60. Kembangkan

Jika jenis di sini ditukar kepada

, maka hasil keluarannya masih menjadi

. unsigned short

Peter_Zhu

Memori di luar sempadan

Julat saiz pendek dalam Java ialah: -32 768 hingga 32 767. Oleh kerana hasil Tambah anda 60000 jelas di luar had (32767), ia akan menyebabkan ralat semasa menghantar kepada jenis pendek. Ia harus ditukar kepada

int answer = (int) Add(num1,num2);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan