Java FAQ:byte を unsigned byte として int と相互変換
Java FAQ:S007 Q-11
public class C2008032600 { public static void main(String[] args) { byte b; int i; b = (byte)0xfd; i = b & 0xFF; System.out.println("b : " + b + " " + Integer.toHexString(b)); System.out.println("b : " + i + " " + Integer.toHexString(i)); i = 0xfd; b = (byte)i; System.out.println("b : " + b + " " + Integer.toHexString(b)); System.out.println("b : " + i + " " + Integer.toHexString(i)); } }
で、
b : -3 fffffffd b : 253 fd b : -3 fffffffd b : 253 fd
- 「b = (byte)0xfd;」が「b = 0xfd;」だと「精度が落ちている可能性」とエラーに。リテラルが int だから???
- Byte.toHexString ってないのか〜