если byte + byte = int, почему int + int не короткий / длинный? в C# - PullRequest
1 голос
/ 09 июля 2020
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'

Это может быть оправдано, если предположить, что операция арифметики c вызывает переполнение. Так что, если это будет так, то что за 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 

Так что это также должно вызывать ошибку приведения правильно, он должен запрашивать long, и цепочка продолжается правильно?

Уже существует другой вопрос о переполнении стека, похожий на этот, но он не отвечает на этот вопрос. byte + byte = int ... почему?

1 Ответ

4 голосов
/ 09 июля 2020

То, что это "может быть оправдано" таким образом, не означает, что причина в этом. вы связали:

Различные размышления, приведенные ниже, являются разумным приближением к соображениям дизайна. В более общем плане: я не считаю байты «числами»; Я думаю о них как о паттернах битов, которые можно интерпретировать как числа, символы, цвета или что-то еще. Если вы собираетесь проводить с ними математические вычисления и рассматривать их как числа, то имеет смысл переместить результат в тип данных, который обычно интерпретируется как число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...