public void encodeByte(int indexToWrite, int valueToEncode) {
        //On met les 2 bits de poids faibles de 4 octets à 0
        for (int i = indexToWrite; i < indexToWrite + 4; i++) {
            sp.data[i] = (short) (sp.data[i] >> 2);
            sp.data[i] = (short) (sp.data[i] << 2);
        }
        //On encode pour chaque octet deux bits de la valeur, en fonction de l'octet le masque à appliquer change
        sp.data[indexToWrite + 3] += valueToEncode & 0b00000011;
        sp.data[indexToWrite + 2] += (valueToEncode & 0b00001100) >> 2;
        sp.data[indexToWrite + 1] += (valueToEncode & 0b00110000) >> 4;
        sp.data[indexToWrite] += (valueToEncode & 0b11000000) >> 6;
    }