diff options
Diffstat (limited to '')
| -rw-r--r-- | src/cz/crcs/ectester/reader/Util.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/cz/crcs/ectester/reader/Util.java b/src/cz/crcs/ectester/reader/Util.java index f876fe4..e297ab1 100644 --- a/src/cz/crcs/ectester/reader/Util.java +++ b/src/cz/crcs/ectester/reader/Util.java @@ -26,16 +26,28 @@ public class Util { } public static byte[] hexToBytes(String hex, boolean bigEndian) { - StringBuilder sb = new StringBuilder(hex.replace(" ", "")); - if (!bigEndian) { - sb.reverse(); - } - int len = sb.length(); + hex = hex.replace(" ", ""); + int len = hex.length(); + StringBuilder sb = new StringBuilder(); + if (len % 2 == 1) { - sb.insert(0, "0"); + sb.append("0"); ++len; } + if (bigEndian) { + sb.append(hex); + } else { + for (int i = 0; i < len / 2; ++i) { + if (sb.length() >= 2) { + sb.insert(sb.length() - 2, hex.substring(2 * i, 2 * i + 2)); + } else { + sb.append(hex.substring(2 * i, 2 * i + 2)); + } + + } + } + String data = sb.toString(); byte[] result = new byte[len / 2]; for (int i = 0; i < len; i += 2) { |
