У меня возникли проблемы с переносом моей математики и процесса преобразования моего кода. Я понимаю, как это дошло до этой суммы, но как получилось отрицательным?Математика преобразования за байтом до int
static void Main(string[] args)
{
short numb1 = 30000, numb2 = 30000;
short answer = (short)Add(numb1, numb2);
Console.WriteLine("{0} + {1} = {2}", numb1, numb2, answer);
NarrowingAttempt();
Console.ReadLine();
}
static int Add(int x, int y)
{
return x + y;
}
static void NarrowingAttempt()
{
byte myByte = 0;
int myInt = 200;
myByte = (byte)myInt;
Console.WriteLine("Value of myByte: {0}", myByte);
}
Это возвращает:
30000 + 30000 = -5536
Маленькая помощь?
Для чего нужен (2 * 16)? – momo003
Это просто означает, что 65536 равно 2 до 16 (2^16, 2 ** 16 и т. Д.). –