Datentyp byte

Status
Nicht offen für weitere Antworten.
C

Chris_76

Gast
Hi,

der Datentyp Byte wird immer mit einem Wertebereich von -127 bis +127 angegeben.
Gibt es kein unsigned wie in C ??
Brauche einen Wertebereich von 0...255, sprich ein Byte ohne VZ, wie realisiert man dies?

Chris
 
G

Gelöschtes Mitglied 5909

Gast
um um deine frage zurückzukommen: nein, unsigned gibts nicht
 
C

Chris_76

Gast
Ja, die gibt es.

Ich will eine Kommunikation zwischen einem Applet und einem µC verwirklichen. Das ganze hat ein "Miniprotokoll"
und sieht so aus :

byte Startbyte
byte daten[32]
byte Endebyte

Die Daten werden vom µC in das daten-Array geschrieben allerdings UNSIGNED, kann ich die Daten mit dem Datentyp byte in Java auslesen und weiterverarbeiten? ???:L

Beispiel :

Byte vom µC : 1000 0001 (binär) ergibt 129 dezimal!

Wenn ich das Byte ausgebe, sagt mir Java dann -1(dezimal) oder 129 :?:

Wenn Java -1 ausgibt kann ich daraus ohne großen Aufwand das VZ-Bit wie ein normales Bit interpretieren oder muss ich das Byte was ich bekomme vom µC auf einen größeren Datentyp (zb int) schreiben und dann das was ich nicht brauche ausmaskieren??
 

Lupo4u2

Mitglied
Entweder
Byte vom µC : 1000 0001 (binär) ergibt 129 dezimal!
Wenn ich das Byte ausgebe, sagt mir Java dann -1(dezimal) oder 129

ausprobieren und schauen ob du es irgendwie weiterverarbeiten kannst, oder du schreibst wirklich einen eigenen Datentyp "unsigned byte", oder du ziehst von dem byte, das du erhälst 128 ab und speicherst es dann als Byte. (musst du nur 128 wieder draufrechnen wenn du es zurückschickst ;) )
 
G

Guest

Gast
@Lupo4u2 : Wie schreibt man einen eigenen Datentyp, kannst Du mir ein paar Stichworte nennen? Hab gesucht aber nichts gefunden und mein :### gab auch nicht viel her.

Mit short werde ich mir überlegen, einen eigenen Datentyp fände ich aber eleganter.

Chris
 
S

SlaterB

Gast
public class MyByte {

private short shorti;

Konstruktor/ set/ get/ add/ ..

}
 
C

Chris_76

Gast
Ich muss einen großen Denkfehler haben und zwar

wenn ich mit dem uC die Zahl 117 als unsigned byte abschicke
also 0111 0101 (binär) erkennt mein Applet dies auch als 117 obwohl
in Java byte unsigned ist.

Wenn ich aber 129, also binär 1000 0000, sende gibt mir der Datentyp byte
-3 aus.

Das verstehe ich nicht, wenn das MSB das VZ-Bit ist dann müsste er doch -1 ausgeben
wie jemand schon geschrieben hat und nicht -3 :?:

Jetzt habe ich in einem Javaprogramm folgendes gemacht :

byte test=-3;
int a;

a=test&127;

Damit müsste ich das MSB löschen und eine 3 herausbekommen, doch was ist die
Ausgabe von a ergibt 125.

Ich versteh es nicht!

HELP!
 
S

SlaterB

Gast
129 ist nicht binär 1000 0000,
wie daraus -3 wird weiß ich allerdings auch nicht,

du hast auch eine falsche Vorstellung von -3,
-3 ist binär 11111101, zumindest in Java, 1000 0001 ist nicht -1 sondern -127!
damit wird die 125 logisch

die einzige offene Frage ist, warum -3 ankommt,
experimentiere vielleicht noch mit anderen hohen und niedrigen Werten, um ein System zu erkennen,
was kommt für 130, 131 usw an,

------

beim Verständnis der Bitdarstellung hilft dir vielleicht dieses Testprogramm:

Code:
public class Test {

	public static void main(String[] args) throws Exception {
		int k = 129;
		p(k);
		byte b = (byte) k;
		p(b);
		b = -3;
		p(b);
		int a = b & 127;
		p(a);

	}

	public static void p(int k) {
		p(bL("" + k, 15) + " = " + bL(Integer.toBinaryString(k), 32));
	}
	public static void p(byte k) {
		p(bL("" + k, 15) + " = " + bL(Integer.toBinaryString(k), 32));
	}

	public static void p(Object o) {
		System.out.println(o.toString());
	}

	public static String bL(String st, int length) {

		if (st == null) {
			st = "NULL";
		}

		if (length < 2) {
			return st;
		}

		if (st.length() > length) {
			return st.substring(0, length - 2) + "..";
		} else {
			StringBuffer stb = new StringBuffer();
			for (int i = 0; i < length - st.length(); i++) {
				stb.append(" ");
			}
			stb.append(st);
			return stb.toString();
		}

	}

}
 
G

Guest

Gast
-3 ist binär 11111101, welche Wertigkeit hat denn jedes einzelne Bit?

0000 0010 (1er komplement von -3)

0000 0011 (2er k.) => 3

Also ist 3 das Zweierkomplement von -3 und umgekehrt, sehe ich richtig oder?

Habe mein Problem weiter analysiert :

Code:
protected BufferedReader datainput = null;
...
socket = new Socket(ip_adresse.getHostAddress(), port);
datainput = new BufferedReader(new InputStreamReader(socket.getInputStream()));
.....
lesen = (datainput.read());

lesen ist ein int, wenn ich jetzt 129 übertrage bekomme ich als
Empfang die Zahl : 65 535

wieso das??
 
S

SlaterB

Gast
von Wertigkeiten, 1er oder 2er Komplement verstehe ich jetzt nicht so viel, als dass ich dir da zu antworten wage,

ich denke aber mal, dass da einfach alles verschoben ist,

00000000 ist 0,
11111111 ist -1
11111110 ist -2
11111101 ist -3
11111100 ist -4

usw., kannst du auch alles selber ausprobieren ;)

---------

warum deine Übertragung schiefgeht kann ich dir, wie gesagt, nicht erklären,
sendest du denn zu einem Java-Programm oder zu einem anderen System?
vielleicht werden dort die Bits anders interpretiert?
kann ja sein

edit: ne du scheinst in Java einzulesen,
schreibe doch mal byteweise in den Stream und lies byteweise wieder ein,
ist da alles gleich?,
bzw. schreibe normal die ints/ bytes rein
und lies bitweise aus, welche Bytes kommen an? (byte[])
 

byte

Top Contributor
Wenn Du ein byte unsigned haben willst, dann musst Du z.B. in ein int konvertieren, und zwar so:

Code:
int i = b & 0xFF;
 
G

Guest

Gast
Ich hab meinen Fehler, der InputStreamReader konvertiert die eingelesenen Bytes in den jeweiligen Zeichensatz des BS.

Nur wie komme ich jetzt an den eigentlichen Bytestream?

Chris
 

Murray

Top Contributor
Reader sind nur für Textdaten zu gebrauchen. Zum Einlesen von Binärdaten braucht man einen InputSTream.
 
G

Guest

Gast
Danke Murray das war es :!: InputStream konvertiert nichts und gibt den eingelesenen
Stream "roh" weiter. Jetzt geht es einwandfrei.

@SlaterB

Vielleicht interessant für Dich : http://de.wikipedia.org/wiki/Zweierkomplement

Kurz : Das Zweierkomplement benutzt man um negative Zahlen im PC-Bereich darzustellen.

11111111 zum Beipspiel ist -1

Das kommt von dem 2er Komplement und zwar sieht das so aus :

0000 0001 ist 1

1er Komplement dreht jedes Bit um, also :

1111 1110

und um zum Zweierkomplement zu kommen addiert man eine 1

1111 1110
+ 1
-------------
1111 1111


Chris
 
S

SlaterB

Gast
wenn ich auf meiner begrenzten Festplatte im Kopf dafür Platz hätte,
würde ich natürlich selbständig Zweierkomplement bei google eintippen und das kopieren,
aber danke für dein Bemühen :bae:
 
G

Guest

Gast
Was hinter "Kurz :" steht ist kopiert der Rest von mir :meld:

So bis die Tage wenn ich wieder Frage :D

Chris
 
G

Gast

Gast
Kann mir jemand dabie helfen wie ich eine binärdatei erstellen kann?

Vielen Dank.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
N Frage zu Datentyp byte Java Basics - Anfänger-Themen 14
N Problem mit Datentyp short, byte Java Basics - Anfänger-Themen 2
F Datentypen Wertebereiche passender Datentyp Java Basics - Anfänger-Themen 5
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
H Datentyp mit 3 Zuständen Java Basics - Anfänger-Themen 42
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
Kanaska Datentyp für Zahlenbereiche Java Basics - Anfänger-Themen 7
A Datentyp char Java Basics - Anfänger-Themen 27
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
T Datentyp mit Anführungszeichen drinnen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp String lenght & charAT Java Basics - Anfänger-Themen 4
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
D Datentypen Welcher ist der beste Datentyp? Java Basics - Anfänger-Themen 28
F Datentypen Missverständnis Datentyp Java Basics - Anfänger-Themen 2
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Klassename als Datentyp??? Java Basics - Anfänger-Themen 4
F Wertebereich/Datentyp Java Basics - Anfänger-Themen 26
M Datentypen Java Datentyp Definition Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
E Datentypen Benutzerdefinierten Datentyp verwenden Java Basics - Anfänger-Themen 1
ms_cikar Java Datentyp unwandlung Java Basics - Anfänger-Themen 7
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
M Interface als Datentyp Java Basics - Anfänger-Themen 12
R Variablen Datentyp erst während Laufzeit festlegen Java Basics - Anfänger-Themen 6
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
R Interface Datentyp bei Erzeugung eines Objekts, dessen Klasse eine Schnittstelle implementiert Java Basics - Anfänger-Themen 18
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
J Field auf Datentyp prüfen Java Basics - Anfänger-Themen 8
D Datentyp Object Java Basics - Anfänger-Themen 2
A Datentypen Mehrdimensionaler Datentyp gesucht Java Basics - Anfänger-Themen 4
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
F Klassenorganisation: Datentyp in Datentyp anlegen Java Basics - Anfänger-Themen 3
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
Guybrush Threepwood Effizientester Datentyp zur Speicherung einer ungeordneten Menge von ints Java Basics - Anfänger-Themen 8
B Datentyp für +,-,*,/ Java Basics - Anfänger-Themen 5
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
GianaSisters Auf Datentyp überprüfen Java Basics - Anfänger-Themen 13
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
M Array mit komplexem Datentyp Java Basics - Anfänger-Themen 9
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
G Datentypen Welcher Datentyp Java Basics - Anfänger-Themen 2
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
J Datentypen Datentyp für Datum Java Basics - Anfänger-Themen 23
B Java Bean, JSP, Komplexer Datentyp Java Basics - Anfänger-Themen 3
I Datentypen Eigener DatenTyp Java Basics - Anfänger-Themen 2
E Datentyp Array Java Basics - Anfänger-Themen 10
M Datentypen Eigenen Datentyp toArray() Java Basics - Anfänger-Themen 4
A Datentyp Char wird in BlueJ nur als leerer weißer Kasten dargestellt Java Basics - Anfänger-Themen 1
F Datentyp Number???? Java Basics - Anfänger-Themen 2
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
A Datentyp mit String festlegen? Java Basics - Anfänger-Themen 13
D Generischer Datentyp Java Basics - Anfänger-Themen 2
D Datentyp: Liste von String->Double dingern Java Basics - Anfänger-Themen 4
K Datentyp vs. Datenstruktur - Unterschiede Java Basics - Anfänger-Themen 13
C Datentyp von einer Variablen ermitteln. Java Basics - Anfänger-Themen 12
M Datentyp Parameter Java Basics - Anfänger-Themen 18
R Welchen Datentyp verwenden? Java Basics - Anfänger-Themen 12
B Datentyp anlegen Java Basics - Anfänger-Themen 6
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
K Datentyp Problem Java Basics - Anfänger-Themen 2
X Rekursion & Generischer Datentyp Java Basics - Anfänger-Themen 11
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
A Datentyp String in char umwandeln Java Basics - Anfänger-Themen 3
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2
D Superinterface als Datentyp Java Basics - Anfänger-Themen 5
E Generischer Datentyp und Arrays Java Basics - Anfänger-Themen 3
Z ArrayList<Entry<Datentyp, Integer>> ? Java Basics - Anfänger-Themen 12
L Datentyp Problem Java Basics - Anfänger-Themen 7
F Datentyp eines Inputs überprüfen Java Basics - Anfänger-Themen 2
NightmareVirus Datentyp des Arrayinhalt abfragen Java Basics - Anfänger-Themen 4
S Probleme mit Datentyp beim Einlesen Java Basics - Anfänger-Themen 4
G Java Problem [Datentyp] Java Basics - Anfänger-Themen 10
B Datentyp char -> Zeichen um einen Wert erhöhen Java Basics - Anfänger-Themen 12
M long Datentyp effizient mit Daten füllen Java Basics - Anfänger-Themen 2
S Datentyp aus 3 longs Java Basics - Anfänger-Themen 3
M datentyp ausfindig machen Java Basics - Anfänger-Themen 2
C Eigenen Datentyp schreiben Java Basics - Anfänger-Themen 13
T Probleme mit Datentyp Double Java Basics - Anfänger-Themen 4
W Datentyp Zahlen sortieren Java Basics - Anfänger-Themen 12
B Datentyp gesucht Java Basics - Anfänger-Themen 5
J Datentyp einer Klasse bei Anwendung von implements Java Basics - Anfänger-Themen 4
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben