allora credo di aver capito meglio il mio problema, la codifica è errata perchè usa solo 7 bit e poi ha valori sui. Quindi ho pensato di trasmettere direttamente in byte e i numeri superiori a 127 li trasformo nel loro equivalente negativo in complemento a 2, cioè faccio valore-256, ora mi sorge un ulteriore problema, non mi funziona il codice

ho creato questa classe
codice:
public class Convertitore 
{

	public static int CONVERSORE = 256; 
	
	public byte ConvertitoreValore(int i)
	{
		if (i>127) return (byte) (i-CONVERSORE);
		else return (byte) i;	
	}
	
}
e l'ho usata in questo modo
codice:
public void Connessione(String ip, int port) throws UnknownHostException, IOException 
	{
		Socket	socket	= new Socket(ip, port);

		if ( socket.isConnected()) System.out.println("Connection established");
		else System.out.println("Connection	not established");
		
		byte[] arrayChar = new byte[6];

		arrayChar[0] = valore.ConvertitoreValore(128);
		arrayChar[1] = (byte) valore.ConvertitoreValore(129);
		arrayChar[2] = (byte) valore.ConvertitoreValore(3);
		arrayChar[3] = (byte) valore.ConvertitoreValore(128);
		arrayChar[4] = (byte) valore.ConvertitoreValore(128);
		arrayChar[5] = (byte) valore.ConvertitoreValore(128);
		
		
		System.out.println(arrayChar);
		System.out.println((byte) arrayChar[1]);
		System.out.println((byte) arrayChar[5]);

		PrintWriter toServer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
		BufferedReader fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));

		toServer.print(arrayChar);
		toServer.flush();
		
		socket.close();
	}
ora mi da i seguenti errori
codice:
Exception in thread "main" java.lang.NullPointerException 
at connessione.ConnessioneSocket.Connessione(ConnessioneSocket.java:29) 
at connessione.Activity.main(Activity.java:14)
dopo la riga di codice
codice:
arrayChar[0] = valore.ConvertitoreValore(128);
avete idea del motivo?