Heim >Java >javaLernprogramm >Analyse von Beispielcode zur Konvertierung von Byteströmen und grundlegenden Datentypen in Java

Analyse von Beispielcode zur Konvertierung von Byteströmen und grundlegenden Datentypen in Java

黄舟
黄舟Original
2017-06-18 10:03:421403Durchsuche

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: Standardmäßig wird der Little-Endian-Modus für die Übertragung verwendet


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));
}
Byte-Stream in Daten vom Typ „Lang“ konvertieren


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 Double-Type-Daten konvertieren


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


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-Typ-Daten in Byte-Stream konvertieren


Das obige ist der detaillierte Inhalt vonAnalyse von Beispielcode zur Konvertierung von Byteströmen und grundlegenden Datentypen in Java. 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