Internet of Thingsで一般的に使用される方法、16進数と2進数間の変換

最近、インターネット・オブ・シングスのプロジェクトを行っているので、16進変換の機能を使うことが多いので、みんなが使える方法をいくつか書いて集めました。

 

インポートjava.text.SimpleDateFormat;
インポートjava.util.Calendar;
インポートjava.util.Date;

/ ****
 バイトおよび16進変換クラス
 ** 
 @author Administrator
 *
 * /
public class ByteUtils {     / **      * byte []から16進文字列      * /     public static String Bytes2HexString(byte [] b) {         String ret = "";         for(int i = 0; i <b.length; i ++){             String hex = Integer.toHexString(b [i]&0xFF);             if(hex.length()== 1){                 hex = '0' + hex;             }             ret + = hex.toUpperCase();         }         return ret;     }













    / **
     *     テイクバイト[]配列から一部を
     * 
     * @param SRC
     * @param開始
     * @param数
     * @return
     * /
{パブリック静的バイト[]のSubBytes(バイト[] srcは、開始INT、INTカウント)         byte [] bs = new byte [count];         for(int i = begin; i <begin + count; i ++)             bs [i-begin] = src [i];         return bs;     }




    // 16進コードを文字列に変換します         publicstatic
    String toStringHex(String s){ byte [] baKeyword = new byte [s.length()/ 2];         for(int i = 0; i <baKeyword.length; i ++){             try {                 baKeyword [i] =(byte)(0xff&Integer.parseInt(s.substring(i * 2、i * 2 + 2)、16));             } catch(Exception e){                 e.printStackTrace( );             }         }







        try {             s = new String(baKeyword、 "utf-8"); // UTF-16le:Not         } catch(Exception e1){             e1.printStackTrace();         }         return s;     }     /      *****获取年份的后两位      * @ return      * /     public static String getYear(){         Calendar calendar = Calendar.getInstance();         int year = calendar.get(Calendar.YEAR);         年=年-2000;         年を返す+ "";     }     public static String month(){         Calendar calendar = Calendar.getInstance();         int月= calendar.get(Calendar.MONTH)+1;



















        戻り月<10? "0" + month:month + "";
    }
    public static String day(){         Calendar calendar = Calendar.getInstance();         int date = calendar.get(Calendar.DATE);         戻り日<10? "0" + date:date + "";     }     public static String hour(){         Calendar calendar = Calendar.getInstance();         int hour = calendar.get(Calendar.HOUR_OF_DAY);         戻り時間<10? "0" +時間:時間+ "";     }     public static String minutes(){         Calendar calendar = Calendar.getInstance();         int分= calendar.get(Calendar.MINUTE);         分を返す<10? "0" +分:分+ "";     }














    public static String second(){         Calendar calendar = Calendar.getInstance();         int second = calendar.get(Calendar.SECOND);         return second <10? "0" + second:second + "";     }     / **      * 16 16進数から2進数に変換      * @ param      hex * @return      * /     public static int binary(String hex){         return Integer.parseInt(hex、16);     }     / **      * 2進数から16進数に変換      * @ param hex      * @return      * /     public static String hex(int var){         if(var <0){             return "error";         }





















        文字列hex = Integer.toHexString(var);
        if(var <= 15){             hex = "0" + hex;         }         16進数を返します。     }     public static String getLastMonthTime(){         Calendar calendar = Calendar.getInstance();         //calendar.add(Calendar.MONTH、-1);         int year = calendar.get(Calendar.YEAR);         int月= calendar.get(Calendar.MONTH)+1;         int date = calendar.get(Calendar.DATE);         int hour = calendar.get(Calendar.HOUR_OF_DAY);         int分= calendar.get(Calendar.MINUTE);         int second = calendar.get(Calendar.SECOND);













        return year + "-" +(month <10? "0" + month:month)+ "-" +(date <10? "0" + date:date)+ "" +(hour <10? "0" +時間:時間)+ ":" +(分<10? "0" +分:分)+ ":" +(秒<10? "0" +秒:秒);
    }
    public static void main(String [] args){         String year = getLastMonthTime();         System.out.println(年);     }     / ***      * 16進行制想加      * @ param hexdata      * @return      * /     public static String makeChecksum(String hexdata){         if(hexdata == null || hexdata.equals( "")){             return "00" ;         }         hexdata = hexdata.replaceAll( ""、 "");         int total = 0;














        int len = hexdata.length();
        if(len%2!= 0){             return "00";         }         int num = 0;         while(num <len){             String s = hexdata.substring(num、num + 2);             合計+ = Integer.parseInt(s、16);             num = num + 2;         }         return hexInt(total);     }     private static String hexInt(int total){         int a = total / 256;         int b =合計%256;         if(a> 255){             return hexInt(a)+ format(b);         }         return format(a)+ format(b);     }










     








     
    private static String format(int hex){         Stringhexa = Integer.toHexString(hex);         int len = hexa.length();         if(len <2){             hexa = "0" +ヘキサ;         }         ヘキサを返す;     }






    /       ***
     バイト配列から16進数 
     へ
* @ parambytes変換されるバイト配列 * @ return変換された16進文字列 
     * /  
    public static String bytesToHex(byte [] bytes){  
        StringBuffer sb = new StringBuffer();  
        for(int i = 0; i <bytes.length; i ++){  
            String hex = Integer.toHexString(bytes [i]&0xFF);  
            if(hex.length()<2){  
                sb.append(0);  
            }  
            sb.append(hex);  
        }  
        return sb.toString();
    }
    /  ***  
     バイトから16進数       * @ paramb
     変換されるバイト 
* @ return変換後の16進文字列 
     * /  
    public static String byteToHex(byte b){  
        String hex = Integer.toHexString(b&0xFF);  
        if(hex.length()<2){  
            hex = "0" + hex;  
        }  
        16進数を返します。  
    }

    /       ***
     16進文字列から      バイト      * @ paraminHex変換さ
れる 16進文字列 
* @ return変換されたバイト 
* 16進文字列は16進文字でなければならないことに注意してください。そうでない場合、例外がスローされます。 。Hexの範囲は0x00から0xFFです
     * /  
    public static byte hexToByte(String inHex){  
       return(byte)Integer.parseInt(inHex、16);  
    }  
    / ** 
     * hex文字列からバイト配列 
     * @ paraminHex変換されるHex String 
     * @ return変換されたバイト配列の結果 
     * /  
    public static byte [] hexToByteArray(String inHex){  
        int hexlen = inHex.length();  
        byte [] result;  
        if(hexlen%2 == 1){  
            //奇妙な  
            hexlen ++;  
            結果=新しいバイト[(hexlen / 2)];  
            inHex = "0" + inHex;  
        } else {  
            //偶数  
            結果=新しいバイト[(hexlen / 2)];  
        }  
        int j = 0;  
        for(int i = 0; i <hexlen; i + = 2){  
            result [j] = hexToByte(inHex.substring(i、i + 2));  
            j ++;  
        }  
        結果を返します。   
    } 
}
 

おすすめ

転載: blog.csdn.net/u010460625/article/details/108482238