Ist es möglich ein Byte größer als 127 zu machen?

... komplette Frage anzeigen

4 Antworten

In Java ist der Datentyp byte 8 Bit groß und signed. Das heißt er kann Zahlen zwischen -128 und 127 repräsentieren. Du kannst auch den Datentyp short (16 Bit) bzw. int (32 Bit) nehmen.

Könnte man beispielsweise lösen:

public class Main {

public static void main(String[] args) {

String input1 = "Gas:0";
String input2 = "Gas:510";

System.out.println(getNumber(input1));
System.out.println(getNumber(input2));
}

private static short getNumber(String input) {//bei einem Fehler wird -1 zurückgegeben

String[] splittedInput = input.split(":");//teilt den String zwischen den : -> [0] = "Gas" [1] = z. B. 120
short number;

if(splittedInput.length <= 1) {//kein ":" im input vorhanden war
return -1;
}

try {
number = Short.parseShort(splittedInput[1]);//Konvertiert den String in ein Short
}
catch(NumberFormatException e) {//falls die Zahl nicht konvertierbar ist z. B. 12A
return -1;
}

return number;
}
}
Antwort bewerten Vielen Dank für Deine Bewertung

ein Byte geht nicht größer als 127 ...

du kannst eine Typkonvertierung mit bytes[0] = (byte) split[1]   probieren...
aber nu bekommst dadurch falsche werte

hast du Zugriff auf die Methode?... dann würd ich diese Ändern

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RobinD110
14.02.2016, 00:30

ne, leider nicht ist in einer Library. Kann ich dieses nicht umwandeln in ein int oder so und dann wieder in ein byte?

0

Du willst die Zahl 0-510 in einer Variable speichern, richtig?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RobinD110
14.02.2016, 00:24

Janein. Also ich bekomme diesen Wert durch ein Drehknopf. Und dieser geht am min = 0 und bei vollen Anschlag max = 510. Und ich würde gerne dieses an eine Methode weitergeben die aber ein byte[] braucht und davon muss man b0 füllen damit der Wert umgesetzt wird. Also byte b0 = new byte[] initialisieren heißt das glaubig und dann b[0] dieser wert muss gefüllt werden mit der Zahl die vom Drehknopf kommt.

0

Ein Byte besteht aus 8 Bits und kann deswegen nur die Zahlen von 0 bis 127 darstellen.

Nimm als Datentyp unsigned int .

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RobinD110
14.02.2016, 00:37

Und wie genau. Bin noch ziemlich am Anfänger die meisten Grundlagen habe ich hinter mir

0

Was möchtest Du wissen?