Datentypen Short aus Bytes - Signed -> Unsigned?

Q

qwertzuiokjgnb

Gast
Folgende Aussage:

We use _a1 and _a2 (both unsigned bytes) to construct a 16 bit signed variable.

Wie kann das möglich sein? Oder, anders gefragt, wie kann ich in Java aus zwei "unsigned bytes" (ich verwende im Programm hierfür ints, um auf 0-255 zu kommen) ein "signed short" erstellen? Ich glaube, das ist eher ein prinzipielles Problem.
 
N

nillehammer

Gast
Sobald Du mit Ganzzahltpyen in Java rechnest, sind die immer vorzeichenbehaftet. Was hier aber wohl mit unsigned byte gemeint ist, ist dass mit den bytes nicht gerechnet wird, sondern direkt die in ihnen enthaltene Bitfolge verarbeitet wird.
 
Q

qwertzuiokjgnb

Gast
Was hier aber wohl mit unsigned byte gemeint ist, ist dass mit den bytes nicht gerechnet wird, sondern direkt die in ihnen enthaltene Bitfolge verarbeitet wird.

Ja, darauf bin ich auch in etwa gekommen. Eine ganzzahlige Variable mit 16 Bit ist in Java ein Short, wenn ich mich nicht irre. Kann mir jemand sagen, wie ich aus den zwei "unsigned bytes" (bei mir als int vorliegend) zu einem Short konvertiere? Ich glaube, ich stehe hier gerade etwas auf dem Schlauch.
 
N

nillehammer

Gast
Wenn Du sicher bist, dass in Deinem int nur Werte drinnen sind, die auch in einen short passen, kannst Du einfach casten:
Java:
short myShort = (short) myInt;
Sollte allerdings ein Wert im int stecken, der den Wertebereich von short sprengt, dann läuft der Code zwar, aber in dem short steckt dann fachlicher Müll drinnen.
 

AngryDeveloper

Bekanntes Mitglied
Kommt darauf an was du genau möchtest. Einfach addieren? Dann rechnen und casten.

Möchtest du, dass die 2 Bytes ein Short bilden, musst du dies auf Bitebene tun:
((a & 0xFF) << 8) | (b & 0xFF)
Durch das & 0xFF kannst du auch die Werte in 2 Bytes speichern.

Wenn du nur mit ints arbeitest kannst du es auch vereinfachen:
int a = 207;
int b = 55;
int c = (a << 8) | b;

Alternativ kannst du das ganze auch über einen ByteBuffer machen.
Vorteil wäre hier, du kannst LITTLE ENDIAN oder BIG ENDIAN (ByteOrder) angeben und musst dich darum nicht mehr selbst kümmern.
 
Q

qwertzuiokjgnb

Gast
Und wie liefe das bei 4 Byte ab? Da muss ich dann einen Integer verwenden, oder?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G WAV-Samples bearbeiten oder: 2 Bytes -> short -> float Allgemeine Java-Themen 5
hdi Speicherbelegung byte, short, int Allgemeine Java-Themen 8
E Short in Char? Allgemeine Java-Themen 4
R Eigene ArrayList vom Typ Short, Integer oder Double Allgemeine Java-Themen 4
G Subtraktion von 2 Short Arrays. Allgemeine Java-Themen 4
G Eclipse Short-Cuts Allgemeine Java-Themen 3
R Lohnt sich byte und short bei Schleifen? Allgemeine Java-Themen 9
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
V Input/Output Austausch von Bytes zwischen C# und Java Allgemeine Java-Themen 3
RalleYTN Input/Output Clip als ein Array von Bytes? Allgemeine Java-Themen 2
J Temperatur aus bytes auslesen. Allgemeine Java-Themen 13
Q Bytes verschwinden im CipherInputStream Allgemeine Java-Themen 1
L Methoden Methode gibt mir beim verschlüsseln mit RSA 0 bytes aus ? Allgemeine Java-Themen 1
J Bytes aus Socket lesen Allgemeine Java-Themen 9
C Datentypen int in bytes zerlegen und wieder zusammen setzen Allgemeine Java-Themen 13
K Hexadezimale Bytes Allgemeine Java-Themen 6
B bereits gelesene Bytes herausfinden Allgemeine Java-Themen 10
M FIFO Queue: bytes in, float/double/etc out Allgemeine Java-Themen 5
S String zu binary und zurück - Problem mit unsigned/signed bytes Allgemeine Java-Themen 2
TiME-SPLiNTER Von Unix, InputStreams und Null Bytes Allgemeine Java-Themen 2
K AES, Buffer und Bytes Allgemeine Java-Themen 2
S Bytes oder Hex-Werte zu Assembler Code? Allgemeine Java-Themen 6
L bytes nach int (little endian bitshift) Allgemeine Java-Themen 12
J Receive eines Hex-Bytes über COM-Port Allgemeine Java-Themen 4
G Zwei bytes vergleichen Allgemeine Java-Themen 2
M Bytes in Datei schreiben Allgemeine Java-Themen 10
T Spezielle Bytes in Datei schreiben Allgemeine Java-Themen 7
F Einlesen von Bytes Allgemeine Java-Themen 9
reibi Größe Array aus bytes Allgemeine Java-Themen 14
G RXTX verschicken einzelener Bytes Allgemeine Java-Themen 8
T Größe eine Variablen in Bytes? Allgemeine Java-Themen 22
G Mehrere Bytes auf einmal einlesen Allgemeine Java-Themen 4
P int -> 4 bytes Allgemeine Java-Themen 11
R Menge an Bytes eines OutputStreams ermitteln. Allgemeine Java-Themen 6
R Wieviele Bytes gesendet Allgemeine Java-Themen 3
T Bestimmte bytes in einer Datei ersetzen? Allgemeine Java-Themen 4
D 16-Bit int --> 2* 8-Bit Bytes Allgemeine Java-Themen 17
H Objekte verbrauchen immer mindestens 16 Bytes Allgemeine Java-Themen 3
W Array größer als 65536 Bytes Allgemeine Java-Themen 7
A RandomAccessFile - Bytes vom Anfang der Datei löschen Allgemeine Java-Themen 32
C Code of a method longer than 65535 bytes Allgemeine Java-Themen 3
L 8 bytes von bestimmter position weg lesen? Allgemeine Java-Themen 11
D 2 Bytes in ein int convertieren Allgemeine Java-Themen 2
B Umwandeln von Bytes in float Zahl (DataInputStream) Allgemeine Java-Themen 3
G 0 Bytes bei temporäre Datei. Warum? Allgemeine Java-Themen 6
RalleYTN Unsigned int in signed int umwandeln Allgemeine Java-Themen 8
B MAC hat Problemm mit Signed Jar Allgemeine Java-Themen 4
R AWT signed/unsigned Allgemeine Java-Themen 3
O Konvertierung Signed-Unsigned und HEX, DEC, BIN Allgemeine Java-Themen 2
A signed jars gegen keystore "authentifizieren" Allgemeine Java-Themen 7
G signed/unsigned Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben