/* * RHQ Management Platform * Copyright (C) 2005-2012 Red Hat, Inc. * All rights reserved. * * 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 version 2 of the License. * * 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, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.core.util; /** * Utilities for working with bytes and byte arrays. * * @author Lukas Krejci */ public class ByteUtil { private static final char[] HEX_DIGITS = "0123456789abcdef".toCharArray(); private ByteUtil() { } /** * Converts the byte array into a string of hexadecimal numbers. * Each byte in the array is represented by exactly two characters * in the resulting string, which form a hexadecimal number with the * value that represents the bits in the byte. * * @param bytes * @return a string of hexadecimal numbers representing the bytes */ public static String toHexString(byte[] bytes) { char[] str = new char[bytes.length * 2]; for (int i = 0; i < bytes.length; ++i) { byte b = bytes[i]; int lower = b & 0x0f; int upper = (b & 0xf0) >>> 4; str[2 * i] = HEX_DIGITS[upper]; str[2 * i + 1] = HEX_DIGITS[lower]; } return new String(str); } }