在 Java 中,計算數字的反碼和補碼都是十分簡單的操作。反碼和補碼都是用來表示有符號整數的一種方法。
反碼是取一個數的二進制表示的所有位,將 0 變為 1, 1 變為 0。例如,二進制數 0011 的反碼是 1100。
int num = 3; int complement = ~num; // complement = -4
在上述代碼中,我們將數字 3 存儲在一個整數類型的變量 num 中。計算 num 的反碼可以通過對 num 取反來實現。在 Java 中,可以使用 ~ 運算符來實現該操作。
補碼是根據一個數的二進制表示,將它的符號位不變,其余各個位取反后加上 1。例如,二進制數 0011 的補碼是 1101。
int num = 3; int complement = ~num + 1; // complement = -3
在上述代碼中,我們使用了與計算反碼類似的方式來計算 num 的補碼。首先,我們對 num 進行取反操作,然后加上 1。
在進行數字的反碼和補碼計算時,需要注意整型數據在 Java 中是有符號的。因此,如果數字的二進制表示中最高位是 1,則該數字是負數。如果最高位是 0,則該數字是正數。在進行計算時,我們需要自行判斷計算結果的符號位。