在Java中:十六進制:在一個int中設置一個8位字節
我有一個十六進制形式的32位數字。我給出了一個特定的字節數(0-3,0爲最不重要的字節),並告訴我需要用另一個以十六進制形式給我的字節替換該字節。例如:32位數字0xAAA5BBC6,用0x17替換字節1得到0xAAA517C6。
我不能使用任何鑄造,乘法,加法,減法或條件。我不能寫任何助手方法,或者從這個或其他文件中調用任何其他方法來實現任何方法。此外,這必須寫在一行代碼中。
我相信我應該使用掩蔽,但我不知道從哪裏開始。給定一個字節數,我怎樣才能改變所有的8位。切換一個或者打開很容易,但是切換所有8位是一個特定的值?
想想你如何屏蔽一個位......然後嘗試以相同的方式屏蔽8個連續的位.. – Buddy
看看位移運算符。用它們將位掩碼移動到位。 – Thilo
請注意:字節編號的方式不是通用的。通常,32位數字的低位字節稱爲「字節0」,但我已經看到了其他方式 - 我已經看到它稱爲字節3,字節0爲高位8位,而且我甚至碰到了那些稱之爲字節4的人。所以當提出這樣的問題時,最好澄清一下。如果你不知道,那麼你需要詢問告訴你這樣做的人。 – ajb