class ByteArray implements Serializable, Cloneable {

    public ByteArray clearBit(int displacement, byte mask) {
        byte b = value.get(displacement);
        b &= (255 - (mask & 0xff));
        value.put(displacement, b);
        return this;
    }

}

class ByteArrayTest {

     ByteArray byteArray;

    @Test
    public void testClearBit() {

        byte[] ba = new byte[2];
        byteArray = new ByteArray(ba);
        byteArray.setBit(0, (byte) 0x41);
        byteArray.setBit(1, (byte) 0x01);
        assertTrue(byteArray.testBit(0, (byte) 0x01));
        assertTrue(byteArray.testBit(0, (byte) 0x40));
        assertTrue(byteArray.testBit(0, (byte) 0x41));
        assertFalse(byteArray.testBit(0, (byte) 0x02));
        byteArray.clearBit(0, (byte) 0x40);
        assertTrue(byteArray.testBit(0, (byte) 0x01));
        assertFalse(byteArray.testBit(0, (byte) 0x40));
        System.out.println("CLR : " + byteArray.readPns(0, 2));
        byteArray.clearBit(0, (byte) 0x80);
        System.out.println("CLR : " + byteArray.readPns(0, 2));
        byteArray.clearBit(0, (byte) 0x01);
        byteArray.setBit(0, (byte) 0x42);
        System.out.println("CLR : " + byteArray.readPns(0, 2));
    }

}