byte num1 = 5;
byte num2 = 6;

byte res = num1 + num2; 
//Adding bytes asks for a explicit cast to int - "Cannot Implicitly Convert 'int' to 'byte'

Hal ini dapat dibenarkan dengan asumsi kasus bahwa bagaimana jika operasi aritmatika menyebabkan overflow. Jadi jika ini akan menjadi kasusnya, lalu untuk apa int?

int num1 = 2;
int num2 = 4;

int res = num1 + num2;
// This works, but when we take the previous assumption to consideration here
// here int may also lead to overflow right 

Jadi ini juga harus membuang kesalahan pemeran kan, harus meminta panjang dan rantai berlanjut kan?

Sudah ada pertanyaan stackoverflow lain yang mirip dengan ini tetapi tidak menjawab pertanyaan ini. byte + byte = int... mengapa?

1
Raghav venkat 9 Juli 2020, 07:28

1 menjawab

Jawaban Terbaik

Hanya karena "bisa dibenarkan" seperti itu, bukan berarti itu alasannya.

Eric Lippert, siapa tahu, jelas tentang ini dalam komentar pada pertanyaan yang Anda tautkan:

Berbagai renungan di bawah ini adalah perkiraan yang masuk akal dari pertimbangan desain. Lebih umum: Saya tidak menganggap byte sebagai "angka"; Saya menganggapnya sebagai pola bit yang dapat diartikan sebagai angka, atau karakter, atau warna atau apa pun. Jika Anda akan menghitungnya dan memperlakukannya sebagai angka, maka masuk akal untuk memindahkan hasilnya ke tipe data yang lebih umum ditafsirkan sebagai angka.

4
Patrick Stevens 9 Juli 2020, 04:37