0
爲什麼這裏需要演員?爲什麼你必須將一個字節的按位操作轉換爲Java中的一個字節?
byte a = 0b0000_0000;
byte b = (byte) ~a;
a
是一個字節,b
是一個字節...爲什麼你需要轉換?
爲什麼這裏需要演員?爲什麼你必須將一個字節的按位操作轉換爲Java中的一個字節?
byte a = 0b0000_0000;
byte b = (byte) ~a;
a
是一個字節,b
是一個字節...爲什麼你需要轉換?
因爲Java Language Specification是這麼說的
一元數值提升(§5.6.1)的操作數執行。一元逐位補碼錶達式的類型 是操作數 的升級類型。
否則,如果操作數是編譯時類型的
byte
,short
,或者char
,它是由一個擴大原始 轉換晉升爲int
類型的值(§5.1 0.2)。
int
類型的值不能分配給類型爲byte
的變量。
多麼奇怪的規則。我會在〜11110101分鐘內接受答案。 – 2015-03-31 05:08:03