diff options
Diffstat (limited to 'src/edu/umich/PowerTutor/util/HexEncode.java')
-rw-r--r-- | src/edu/umich/PowerTutor/util/HexEncode.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/edu/umich/PowerTutor/util/HexEncode.java b/src/edu/umich/PowerTutor/util/HexEncode.java new file mode 100644 index 0000000..eb9d975 --- /dev/null +++ b/src/edu/umich/PowerTutor/util/HexEncode.java @@ -0,0 +1,41 @@ +/* +Copyright (C) 2011 The University of Michigan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +Please send inquiries to powertutor@umich.edu +*/ + +package edu.umich.PowerTutor.util; + +public class HexEncode { + public static String encode(byte[] bytes) { + StringBuilder bld = new StringBuilder(); + for(int i = 0; i < bytes.length; i++) { + bld.append((char)('a' + (bytes[i] >> 4 & 0xF))); + bld.append((char)('a' + (bytes[i] & 0xF))); + } + return bld.toString(); + } + + public static byte[] decode(String dat) { + int N = dat.length() / 2; + byte[] ret = new byte[N]; + for(int i = 0; i < N; i++) { + ret[i] = (byte)(dat.charAt(2 * i) - 'a' << 4 | + dat.charAt(2 * i + 1) - 'a'); + } + return ret; + } +} |