Byte to Int

Hindi93

Aktives Mitglied
Hi,
ich hab gerade gelesen, dass man mit dieser Methode hier einen schon belegten Byte in einen Integer umwandeln kann:
Java:
static int byteToInt(byte b) {
	return b & 0xff;
}
Doch ich kapiere den Code nicht, weil wenn ich jetzt z.B. schreibe
Java:
byte b = 200
Dann fängt das byte doch wieder von seiner niedrigsten Zahl (-128) an zu zählen, also kommt dabei herraus -56. Nur wenn ich jetzt meine Methode aufrufe:
Java:
byteToInt((byte) -56)
bzw.
Java:
byteToInt(b)
Wie zum Teufel kann da dann wieder 200 raus kommen? Ich meine die Zahl 200 hat ja 0 mit -56 zu tun...

EDIT:
Hab gerade gemerkt wenn man es mit einer größeren Zahl macht, kommt beim Konventieren ne falsche Zahl herraus. Nimmt diese Methode also auf gut deutsch nur das Vorzeichen weg?

Und wofür steht die Hexzahl 0xff?
 
Zuletzt bearbeitet:

kay73

Bekanntes Mitglied
Code:
byte
s in Java sind vorzeichenbehafte Ganzzahlen und haben den WerteBereich -128 bis 127. Die Darstellung erfolgt im Zweierkomplement, was u. a. bedeutet, dass für negative Werte alle höherwertigen Bits gesetzt sind.

Wenn Java ein negatives
Code:
byte
in ein
Code:
int
erweitert, wird der gleiche negative Wert als Integer natürlich ebenfalls im Zweierkomplement dargestellt, was bei Javas 32-bit Integern bedeutet, dass alle 24 höherwertigen Bits im
Code:
int
gesetzt sind. Die Zahl
Code:
0xff
ist der Integer, in dem nur die 8 niederwertigesten Bit gesetzt sind. Ver-AND-et man einen Integer mit
Code:
0xff
löscht das die obersten 24 bit und der Integer nimmt hier einen positiven Wert an, nämlich den Wert des bytes, aus dem gecastet wurde, wenn es vorzeichenlos gewesen wäre.

Wenn man von Bytes und Zweierkomplement spricht, haben die Werte 200 und -56 durchaus einen Zusammenhang: Im Zweierkomplement gilt -x= n-x , wobei für ein Byte n=2^8=256 ist.
 
Zuletzt bearbeitet:

Hindi93

Aktives Mitglied
Aber 0xff hat doch 8Bits oder? Also währe es 11111111, wenn man da jetzt noch Vorzeichen hat währen es doch 9bits...? Und außerdem, währe es nicht logischer wenn man ein XOR hernimmt wobei wenn z.B. das Minus die Ziffer 0 währe das es dann in eine 1 umgewandelt wird?

EDIT:
Oder existiert in Wirklichkeit gar kein Vorzeichen, also nich in dem Sinne das für + eine 1 dran steht und für - eine 0, sondern so bald die 127 überstiegen wurde fängts bvei -128 wieder an?
 
G

Gastredner

Gast
Ein byte hat immer 8 Bit - egal ob signed oder unsigned. In Java gibt es nur signed Variablen - das 8. Bit wird dabei zur Darstellung des Vorzeichens verwendet. Ein zusätzliches Bit für diese Aufgabe existiert nicht.

Und auch das binäre UND stimmt so schon. Am besten begreift man dies wohl, wenn man sich die Bitfolgen einfach mal aufschreibt:
Code:
byte:	                           11001000
&                                  ||||||||
int:	00000000 00000000 00000000 11111111
-------------------------------------------
int:	00000000 00000000 00000000 11001000
 

kay73

Bekanntes Mitglied
Aber 0xff hat doch 8Bits oder?
...und noch 24 mehr.
Code:
0xFF
ist hier ein
Code:
int
.
das 8. Bit wird dabei zur Darstellung des Vorzeichens verwendet.
So stimmt das nicht: Wenn das höchstwertigste Bit gesetzt ist, ist der Wert negativ, wenn die Zahl im Zweierkomplement dargestellt wird. Die restlichen 7 bit ergeben aber nicht etwa einen "Absolutwert".
Oder existiert in Wirklichkeit gar kein Vorzeichen, also nich in dem Sinne das für + eine 1 dran steht und für - eine 0, sondern so bald die 127 überstiegen wurde fängts bvei -128 wieder an?
So in etwa. Der Zweck des Zweierkomplementes ist es eine Dualzahl so darzustellen, dass mit ein und derselben Schaltung vorzeichenbehaftete Strichrechnung möglich ist. Bei einer solchen Schaltung nutzt man meines Wissens gezielt Integerüberläufe im Register aus.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
P int zu byte Java Basics - Anfänger-Themen 8
F Byte Array wachsen lassen Java Basics - Anfänger-Themen 5
M Java Klasse Byte Java Basics - Anfänger-Themen 10
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
J byte - Ausgabe Java Basics - Anfänger-Themen 2
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
S byte to float Java Basics - Anfänger-Themen 4
J Byte Folge erkennen Java Basics - Anfänger-Themen 5
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
M Byte Array und Co. Java Basics - Anfänger-Themen 12
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
Y File to byte[] and byte[] to sysout Java Basics - Anfänger-Themen 3
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
P String in byte konvertieren, wie? Java Basics - Anfänger-Themen 4
T Erste Schritte Byte Java Basics - Anfänger-Themen 3
R byte[] zu String und Ausgabe Java Basics - Anfänger-Themen 2
H Variablen short <-> byte[] Java Basics - Anfänger-Themen 15
X Datentypen String in byte[] Java Basics - Anfänger-Themen 29
H Variablen 32bit Zählwert als Byte-Array Java Basics - Anfänger-Themen 9
H Variablen string nach byte Java Basics - Anfänger-Themen 12
B Frage zur Effizienz von read und read(byte[]) Java Basics - Anfänger-Themen 23
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
S Von byte[] nach String zurueck nach byte[]. Arrays sind nicht identisch :( Java Basics - Anfänger-Themen 6
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
V unsigned byte? Java Basics - Anfänger-Themen 27
M byte Array Mindestlänge Java Basics - Anfänger-Themen 19
U short[] nach byte[] Java Basics - Anfänger-Themen 11
D [jni] jbytearray <-> byte array Java Basics - Anfänger-Themen 8
S Datentypen Ändern eines byte[] Arrays Java Basics - Anfänger-Themen 4
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
P byte Array aus ImageIcon Java Basics - Anfänger-Themen 10
S Input/Output String in byte umwandeln? Java Basics - Anfänger-Themen 5
F von Byte zu 2 Stellig Hex Java Basics - Anfänger-Themen 3
G byte[] (Base64) korrekt übergeben Java Basics - Anfänger-Themen 4
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
F Byte nach Zahl umwandeln Java Basics - Anfänger-Themen 11
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
T Datentypen unsigned byte? Java Basics - Anfänger-Themen 9
G Integar zu Byte Java Basics - Anfänger-Themen 4
P Byte mit 0...255? Java Basics - Anfänger-Themen 5
N Datentypen Fehler beim Umwandeln in byte Java Basics - Anfänger-Themen 3
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
L Datentypen 250 und byte? Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
H Datentypen Byte-Array RSA Java Basics - Anfänger-Themen 9
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
V Byte -> String -> Byte verlustfrei Java Basics - Anfänger-Themen 12
H Datentypen byte[] to int Java Basics - Anfänger-Themen 9
S hex zu byte Java Basics - Anfänger-Themen 4
M Byte Array: Werte größer 127? Java Basics - Anfänger-Themen 11
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
H 1 Byte Status Variable Java Basics - Anfänger-Themen 3
P Datentypen Byte und char Typecast Java Basics - Anfänger-Themen 2
M Bit/Byte Operationen Java Java Basics - Anfänger-Themen 8
W Datentypen int -> byte Java Basics - Anfänger-Themen 2
H Datentypen Byte-Array aus Stream lesen Java Basics - Anfänger-Themen 3
F Typenumwandlung byte <=> int verstehen Java Basics - Anfänger-Themen 3
S Byte eines arrays Java Basics - Anfänger-Themen 17
N Frage zu Datentyp byte Java Basics - Anfänger-Themen 14
B unsigned byte Problem Java Basics - Anfänger-Themen 9
S 2 Byte Arrays addieren Java Basics - Anfänger-Themen 45
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S Alle Datentypen in byte Array und zurückwandeln Java Basics - Anfänger-Themen 2
H Frage zu Byte-Streams Java Basics - Anfänger-Themen 2
Z Wie Byte[] in einen String oder int konvertieren Java Basics - Anfänger-Themen 2
0 byte[] -> hex Java Basics - Anfänger-Themen 2
G char[] in byte[] konvertieren? Java Basics - Anfänger-Themen 2
V Byte Arrays in Strings umwandeln und splitten Java Basics - Anfänger-Themen 2
M unsigned byte Java Basics - Anfänger-Themen 4
F Byte 0 und 1 einzelnd zuweisen? Java Basics - Anfänger-Themen 17
G byte [] aus uRL erhalten Java Basics - Anfänger-Themen 11
J Byte-Array als Hex-Datei speichern? Java Basics - Anfänger-Themen 9
G Hex to Byte Java Basics - Anfänger-Themen 13
S Byte in Zahl umwandeln Java Basics - Anfänger-Themen 3
M Double-Wert in Byte[] umwandeln Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben