有人可以解釋爲什麼我不能以這種方式乘以兩個字節?乘以兩個字節
byte a = 1;
byte b = 1;
byte c = a*b;
或
byte a = 1;
byte b = 1;
short c = a*b;
爲什麼我必須這樣做,以這種方式?
byte a = 1;
byte b = 1;
byte c = (byte)(a*b);
或
byte a = 1;
byte b = 1;
int/double/float/long c = a*b;
認爲'255 * 255 = 65535',它太大而不適合在一個字節內...... –
@MarcB'255'太大而不適合'byte'(它用Java簽名),' 255 * 255'是'65025'。 – rgettman
這是一種不一致的語言。兩個'int'的乘積不能保證適合'int',但是'int = int * int'是允許的,而不需要強制轉換。 – khelwood