BcdConverter.java 1021 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package com.its.app.utils;
  2. public class BcdConverter {
  3. public static String bcdToString(byte bcd) {
  4. StringBuilder sb = new StringBuilder();
  5. byte high = (byte)(bcd & 0xf0);
  6. high >>>= (byte)4;
  7. high = (byte)(high & 0x0f);
  8. byte low = (byte) (bcd & 0x0f);
  9. sb.append(high);
  10. sb.append(low);
  11. return sb.toString();
  12. }
  13. public static String bcdToString(byte[] data) {
  14. StringBuilder sb = new StringBuilder();
  15. for (byte datum : data) {
  16. sb.append(bcdToString(datum));
  17. }
  18. return sb.toString();
  19. }
  20. public static byte[] stringToBcd(String data) {
  21. if ((data.length() % 2) != 0) {
  22. data += "0";
  23. }
  24. byte[] temp = data.getBytes();
  25. int length = temp.length;
  26. byte[] result = new byte[length/2];
  27. for (int ii = 0; ii < length; ii+=2) {
  28. result[ii/2] = (byte)((temp[ii] - '0') << 4 | (temp[ii+1] - '0'));
  29. }
  30. return result;
  31. }
  32. }