Heim >Java >javaLernprogramm >Detaillierte Erläuterung von Konvertierungsbeispielen zwischen Java-Byte-Streams und grundlegenden Datentypen

Detaillierte Erläuterung von Konvertierungsbeispielen zwischen Java-Byte-Streams und grundlegenden Datentypen

怪我咯
怪我咯Original
2017-07-02 10:18:382472Durchsuche

In diesem Artikel werden hauptsächlich die Konvertierungsbeispiele für Java-Byte-Streams und grundlegende -Datentypen vorgestellt.

Interessierte Freunde können darauf verweisen In der tatsächlichen Entwicklung stoßen wir häufig auf die Situation bei der Kommunikation mit eingebetteten Geräten. Aufgrund der schlechten Verarbeitungsfähigkeiten einiger eingebetteter Geräte werden Daten häufig in Form von binären Datenströmen übertragen.

Hinweis: Der Standardübertragungsmodus ist Little Endian


Konvertieren Sie den Byte-Stream in Daten vom Typ „int“

public static int getInt(byte[] bytes) {
  return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16))
      | (0xff000000 & (bytes[3] << 24));
}
Konvertieren Sie den Byte-Stream in Daten vom Typ „long“

public static long getLong(byte[] bytes) {
  return ((0xffL & (long) bytes[0]) | (0xff00L & ((long) bytes[1] << 8)) | (0xff0000L & ((long) bytes[2] << 16))
      | (0xff000000L & ((long) bytes[3] << 24)) | (0xff00000000L & ((long) bytes[4] << 32))
      | (0xff0000000000L & ((long) bytes[5] << 40)) | (0xff000000000000L & ((long) bytes[6] << 48))
      | (0xff00000000000000L & ((long) bytes[7] << 56)));
}
Byte-Stream in Daten vom Typ

float konvertieren

public static float getFloat(byte[] bytes){
  int temp=getInt(bytes);
  return Float.intBitsToFloat(temp);
}
Byte-Stream in Daten vom Typ Double konvertieren

public static double getDouble(byte[] bytes){
  long temp=getLong(bytes);
  return Double.longBitsToDouble(temp);
}
Daten vom Typ int konvertieren in Byte-Stream

public static byte[] getByteFromInt(int data){
  byte[] temp=new byte[4];
  temp[0]=(byte)(0xFF&(data));
  temp[1]=(byte)(0xFF&(data>>8));
  temp[2]=(byte)(0xFF&(data>>16));
  temp[3]=(byte)(0xFF&(data>>24));
  return temp;
}
Long-Type-Daten in Byte-Stream konvertieren

public static byte[] getByteFromLong(long data){
  byte[] temp=new byte[8];
  temp[0]=(byte)(0xFF&(data));
  temp[1]=(byte)(0xFF&(data>>8));
  temp[2]=(byte)(0xFF&(data>>16));
  temp[3]=(byte)(0xFF&(data>>24));
  temp[4]=(byte)(0xFF&(data>>32));
  temp[5]=(byte)(0xFF&(data>>40));
  temp[6]=(byte)(0xFF&(data>>48));
  temp[7]=(byte)(0xFF&(data>>56));
  return temp;
}
Float-Type-Daten in Byte-Stream konvertieren

public static byte[] getByteFromFloat(float data){
  byte[] temp=new byte[4];
  int tempInt=Float.floatToIntBits(data);
  temp[0]=(byte)(0xFF&(tempInt));
  temp[1]=(byte)(0xFF&(tempInt>>8));
  temp[2]=(byte)(0xFF&(tempInt>>16));
  temp[3]=(byte)(0xFF&(tempInt>>24));
  return temp;
}
Double-Type-Daten in Byte konvertieren Stream

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Konvertierungsbeispielen zwischen Java-Byte-Streams und grundlegenden Datentypen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn