x,y,w,hの4つの値が255以下のときはintのビット演算で処理してみる
x,y,width,heightの値を扱うときRectangleを使ってもいいんですが
まぁなんとなく気分でビット演算でやってみようという顔になった
enum BitIntTest { INSTANCE; int value; void set(int val, int shift) { value &= ~(255<<(shift<<3)); value |= (val<<(shift<<3)); } int get(int shift) { return (value>>(shift<<3)) & 0xFF; } void p(Object o) { System.out.println(o); } void setAndget(int v1, int v2, int v3, int v4) { p("----- set -----"); set(v1,0); p("0 = " + v1 + ": value = " + value); set(v2,1); p("1 = " + v2 + ": value = " + value); set(v3,2); p("2 = " + v3 + ": value = " + value); set(v4,3); p("3 = " + v4 + ": value = " + value); p("----- get -----"); p("0 = " + get(0) + ": value = " + value); p("1 = " + get(1) + ": value = " + value); p("2 = " + get(2) + ": value = " + value); p("3 = " + get(3) + ": value = " + value); p(""); } BitIntTest() { setAndget(255,255, 255, 255); setAndget(24, 40, 146, 0); setAndget(30, 150, 0, 255); setAndget(79, 20, 180, 4); setAndget(1, 1, 1, 1); setAndget(0, 0, 0, 0); setAndget(252, 253, 254, 255); } public static void main(String[] args) { }}