jiazx0107@163.com
2023-12-14 8435cf1d25d07b09e2a9937d39bed1c1a422e4f0
src/main/java/com/fzzy/api/utils/BytesUtil.java
@@ -401,4 +401,72 @@
   public static String folatToHexString(Float value) {
      return Integer.toHexString(Float.floatToIntBits(value));
   }
   /**
    * int转16进制字符串 1位置 00
    *
    * @param num
    * @return
    */
   public static String intToHexStr1(int num) {
      // 需要使用2字节表示b
      return String.format("%02x", num).toUpperCase();
   }
   public static String hexString2binaryString(String hexString, int num) {
      //16进制转10进制
      BigInteger sint = new BigInteger(hexString, num);
      //10进制转2进制
      String str = sint.toString(2);
      if(str.length() < num){
         for (int i = str.length(); i < num; i++) {
            str = "0" + str;
         }
      }
      return str;
   }
   /**
    * 将二进制转换为10进制
    * @param binStr
    * @return
    */
   public  static  Integer biannary2Decimal(String binStr){
      Integer sum = 0;
      int len = binStr.length();
      for (int i=1;i<=len;i++){
         //第i位 的数字为:
         int dt = Integer.parseInt(binStr.substring(i-1,i));
         sum+=(int)Math.pow(2,len-i)*dt;
      }
      return  sum;
   }
   /**
    * 二进制补码:取反口加1
    * @param str
    * @return
    */
   public static Integer twoToString(String str) {
      String two = "";
      String[] split = str.split("");
      for (int i = 0;i< split.length;i++){
         if("1".equals(split[i])){
            two += "0";
         }else if("0".equals(split[i])){
            two += "1";
         }
      }
      return biannary2Decimal(two) + 1;
   }
   public static String byteToHex(byte b) {
      String hex = Integer.toHexString(b & 0xFF);
      if (hex.length() < 2) {
         hex = "0" + hex;
      }
      return hex;
   }
}