c39d6594f7c42ed219e4b0e780aabbf7d3ee2a46.svn-base 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package eVVM.apk.helper;
  2. import android.util.Log;
  3. import java.math.BigInteger;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. /**
  7. * @Author leisurexi
  8. * @Description 进制转换工具类
  9. * @Date 2019/6/3 19:51
  10. */
  11. public class ConversionUtil {
  12. /**
  13. * 十进制转换为二进制字符串
  14. */
  15. public static String decToBin(int number) {
  16. return Integer.toBinaryString(number);
  17. }
  18. /**
  19. * 二进制字符串转换为十进制数字
  20. */
  21. public static int binToDec(String number) {
  22. return Integer.valueOf(number, 2);
  23. }
  24. /**
  25. * 十进制转换为十六进制字符串
  26. */
  27. public static String decToHex(int number) {
  28. return Integer.toHexString(number);
  29. }
  30. /**
  31. * 十六进制字符串转十进制数字
  32. */
  33. public static int hexToDec(String number) {
  34. return Integer.valueOf(number, 16);
  35. }
  36. /**
  37. * 十六进字符串制转二进制字符串
  38. * 这是单个转
  39. */
  40. public static String hexToBin(String number) {
  41. Integer hex = Integer.valueOf(number, 16);
  42. return Integer.toBinaryString(hex);
  43. }
  44. /**
  45. * 十六进字符串制转二进制字符串
  46. * 这是整个转
  47. * @return 10100110000110000110000110000
  48. */
  49. public static String hexToBins(String hexStr) {
  50. if (hexStr.length() < 1)
  51. return null;
  52. StringBuilder result = new StringBuilder();
  53. for (int i = 0; i < hexStr.length() / 2; i++) {
  54. String hex = String.valueOf(hexStr.charAt(i * 2)) + hexStr.charAt(i * 2 + 1);
  55. String binStr = Integer.toBinaryString(Integer.valueOf(hex, 16));
  56. String str = "";
  57. int shao = 8 - binStr.length();
  58. for(int k = 0;k < shao;k++){
  59. str = str + "0";
  60. }
  61. binStr = str + binStr;
  62. result.append(binStr);
  63. // Log.e("----",hex);
  64. // Log.e("----",binStr);
  65. }
  66. return result.toString();
  67. }
  68. /**
  69. * 16进制转ascii码
  70. * 格式为 1430303030
  71. */
  72. public static String hexToAscii(String hex) {
  73. StringBuilder sb = new StringBuilder();
  74. for (int i = 0; i < hex.length() - 1; i += 2) {
  75. String output = hex.substring(i, (i + 2));
  76. int decimal = Integer.parseInt(output, 16);
  77. char c = (char) decimal;
  78. if (c < 48 || c > 57) {
  79. continue;
  80. }
  81. sb.append(c);
  82. }
  83. return sb.toString();
  84. }
  85. /**
  86. * 温度解密
  87. */
  88. public static List<String> temperatureDecry(String[] hexNumbers) {
  89. String bins = "";
  90. // for (int i = 0; i < hexNumbers.length; i++) {
  91. // bins += hexToBin(hexNumbers[i]);
  92. // }
  93. List<String> result = new ArrayList<>(bins.length() / 2);
  94. for (int i = 0; i < bins.length(); i++) {
  95. if (i != 0 && i % 2 == 0) {
  96. result.add(bins.substring(i - 1, i) + bins.substring(i, i + 1));
  97. }
  98. }
  99. return result;
  100. }
  101. }