cari

Rumah  >  Soal Jawab  >  teks badan

一道关于Java的题目

我实在不懂为什么是-5536

高洛峰高洛峰2887 hari yang lalu381

membalas semua(2)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:07:54

    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

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:07:54

    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);

    balas
    0
  • Batalbalas