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:

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);
    }
}
La classe Integer fornisce qualche altro metodo per manipolare bit, ma non credo facciano al tuo caso.