• Home
  • About

Snippet IT

IT News, Programming, Internet and Blogging

  • Programming and Scripting
  • Tips and Tricks
  • Search Engine Optimization and Internet Marketing
  • Earning with Website and Blogging
  • Software and Hardware
  • New and Happening
  • Other
  • Sponsored Post
You are here: Home / Programming and Scripting / Java: Format Bytes Array into Hexadecimal String

Java: Format Bytes Array into Hexadecimal String

May 22, 2009 by Sze Hau Leave a Comment

Sometimes, we may want to format a bytes array into hexadecimal (base-16) format for debugging purpose or for better readability. One byte has 8 bits and one byte can be represent by two hexadecimal characters (0 – 15 and A – F).

You can use the Java’s String.format to print out each byte but I still prefer my own way of doing it, which I believe it will perform a little bit faster. The following code shows the way to convert bytes array into hexadecimal string and vice versa.

 

public class Bytes {

  private final static char[] HEX = {
    '0', '1', '2', '3', '4', '5', '6', '7',
    '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
  };

  public static String toHex(byte[] bytes) {
    StringBuilder buffer;

    buffer = new StringBuilder();
    for (byte b : bytes) {
      buffer.append(HEX[(b >> 4) & 0xf]);
      buffer.append(HEX[b & 0xf]);
    }
    return buffer.toString();
  }

  public static byte[] fromHex(String hex) throws NumberFormatException {
    char[] chars;
    char c;
    int i;
    int j;
    byte[] bytes;
    byte b;

    chars = hex.toUpperCase().toCharArray();

    if (chars.length % 2 != 0) {
      throw new NumberFormatException("Incomplete hex value");
    }

    bytes = new byte[chars.length / 2];
    b = 0;
    j = 0;
    for (i = 0; i < chars.length; i++) {
      c = chars[i];
      if (c >= '0' && c <= '9') {
        b = (byte) ((b << 4) | (0xff & (c - '0')));
      } else if (c >= 'A' && c <= 'F') {
        b = (byte) ((b << 4) | (0xff & (c - 'A' + 10)));
      } else {
        throw new NumberFormatException("Invalid hex character: " + c);
      }
      if ((i + 1) % 2 == 0) {
        bytes[j++] = b;
        b = 0;
      }
    }

    return bytes;
  }
}

More from my site

  • Java: Format Long Integer Into Hexadecimal StringJava: Format Long Integer Into Hexadecimal String
  • Java: Format Integer Into Fixed Width StringJava: Format Integer Into Fixed Width String
  • Java: How To Create A Simple Web Server Using HttpServerJava: How To Create A Simple Web Server Using HttpServer
  • Java: Static Initializer (Static Constructor)Java: Static Initializer (Static Constructor)
  • Java: Use ByteBuffer As InputStreamJava: Use ByteBuffer As InputStream
  • Java: Continuously Read Data From FileChannel Without MappedByteBufferJava: Continuously Read Data From FileChannel Without MappedByteBuffer

Filed Under: Programming and Scripting Tagged With: array, byte, format, hexadecimal, Java

About Sze Hau

Geek. Love programming. Coffee addicted. Married with two children. Working towards financial freedom.

Leave a Reply Cancel reply

Advertisement

  • Facebook
  • Google+
  • Instagram
  • Twitter

Email News Letter

Sign up to receive updates daily and to hear what's going on with us

Search Engine Optimization

Short URL: Top 5 Websites That Provide Free Short URL Service

December 10, 2009 By Sze Hau Leave a Comment

Google Chromium OS

November 23, 2009 By Sze Hau Leave a Comment

WordPress Plugin: Official StatCounter Plugin

November 13, 2009 By Sze Hau 1 Comment

Make Money With Website And Blogging

Wordpress

WordPress: How To Change Admin Username

September 23, 2015 By Sze Hau Leave a Comment

WordPress: Transfer Your Blogs To Another Hosting With Minimum Downtime

February 3, 2014 By Sze Hau Leave a Comment

Virtualmin: How To Install Virtualmin in CentOS

August 26, 2013 By Sze Hau Leave a Comment

Software and Hardware

iOS 5.1 Unable to Update

March 13, 2012 By Sze Hau Leave a Comment

Blog Network

  • All Gadget Latest Gadget Reviews and News
  • Blog Portal A place where bloggers gather
  • Personal Fincance Personal Finance – Personal Money Tips, Stock Investment, Small Business and Make Money Online
  • szehau's weblog Life, Internet, Software, Gadgets, Programming and Investments
  • Vista Talks Software News, Software Updates, Tips And Tricks

Snippet IT

This is the place where I want to share anything about information technology.

Search

Recent

  • MD5 and SHA1 Checksum Using Windows
  • MD5 and SHA1 Checksum Using Linux
  • Java: Unlimited Strength Jurisdiction Policy
  • WordPress: How To Change Admin Username
  • Linux: How To Compress And Decompress Folders And Files

Tags

Adsense advertisement advertising apache blog blogging tips C# EGPC error estimation format format Integer Gmail Google Google Adsense Google Chrome Google Search Engine Google search result how to HTTP internet marketing Java JavaScript Linux money password performance PHP programming search engine optimization secure security short URL SQL static constructor String tiny URL Tips and Tricks twitter video Windows Vista Wordpress wordpress plugin wordpress theme Youtube

Copyright © 2021 · Magazine Pro Theme on Genesis Framework · WordPress · Log in