Rispondo alla seconda domanda.
Solitamente, se vuoi considerare solo parte dei bit, usi le maschere di bit.
Ad esempio, per prendere solo i primi 3 bit significativi di 0x75:
La classe Integer fornisce qualche altro metodo per manipolare bit, ma non credo facciano al tuo caso.codice:package desktop; public class Main { public static void print(String s, int r) { for(int i = 0; i < r; i++) System.out.print(s); System.out.println(); } public static void f(int x, int mask) { int y = x & mask; System.out.println(Integer.toBinaryString(y)); System.out.println(y); } public static void main(String[] args) { int x = 0x75; int mask = 0x70; String sx = Integer.toBinaryString(x); String smask = Integer.toBinaryString(mask); System.out.println(sx); System.out.println(smask); print("-", Math.max(sx.length(), smask.length())); f(x, mask); } }

Rispondi quotando