1. print byte
public static void printHexString(String hint, byte[] b)
{
System.out.print(hint);
for (int i = 0; i < b.length; i++)
{
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1)
{
hex = '0' + hex;
}
System.out.print(hex.toUpperCase() + " ");
}
System.out.println("");
}
2.get byte
ConvertByte.java
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class ConvertByte {
ByteArrayOutputStream mbyteStream;
DataOutputStream mdataStream;
ConvertByte(){
}
public void printHexString(String hint, byte[] b)
{
System.out.print(hint);
for (int i = 0; i < b.length; i++)
{
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1)
{
hex = '0' + hex;
}
System.out.print(hex.toUpperCase() + " ");
}
System.out.println("");
}
byte[] ConvertFromInt(int i){
mbyteStream = new ByteArrayOutputStream();
mdataStream = new DataOutputStream(mbyteStream);
mbyteStream.reset();
System.out.println(mdataStream.size());
try{
mdataStream.write(i);
}catch(IOException e){
;
}
byte[] tmp = mbyteStream.toByteArray();
try{
mbyteStream.close();
mdataStream.close();
}catch (IOException e){
}
return tmp;
}
byte[] ConvertFromLong(long l){
mbyteStream = new ByteArrayOutputStream();
mdataStream = new DataOutputStream(mbyteStream);
mbyteStream.reset();
System.out.println(mdataStream.size());
try{
mdataStream.writeLong(l);
}catch(IOException e){
;
}
byte[] tmp = mbyteStream.toByteArray();
try{
mbyteStream.close();
mdataStream.close();
}catch (IOException e){
}
return tmp;
}
byte[] ConvertFromFloat(Float l){
mbyteStream = new ByteArrayOutputStream();
mdataStream = new DataOutputStream(mbyteStream);
mbyteStream.reset();
System.out.println(mdataStream.size());
try{
mdataStream.writeFloat(l);
}catch(IOException e){
;
}
byte[] tmp = mbyteStream.toByteArray();
try{
mbyteStream.close();
mdataStream.close();
}catch (IOException e){
}
return tmp;
}
}
Main.java
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
ConvertByte cb = new ConvertByte();
cb.printHexString("lyftest", cb.ConvertFromInt(20));
cb.printHexString("lyftest", cb.ConvertFromFloat((float)(10.1)));
}
}
the string and the double is the same.
int 2 byte, float 4 byte and double 8 byte.
3. new way
of course the method mentioned above maybe too low efficient.
here is another way for int, but we need to write different for different type.
byte b[] = new byte[4];
int type = 3;
for (int i = 0; i < 4; i++){
b[3-i]=(byte)((type)>>(i*8));
}