tags:

views:

57

answers:

1

I am new at Java. I am learning.

I am trying to do the following: convert a hexadecimal string into a binary, then process the binary into a series of booleans.

    public static void getStatus() {
    /*
     * CHECKTOKEN is a 4 bit hexadecimal 
     * String Value in FF format. 
     * It needs to go into binary format 
     */
    //LINETOKEN.nextToken = 55 so CHECKTOKEN = 55
    CHECKTOKEN = LINETOKEN.nextToken();
    //convert to Integer  (lose any leading 0s)
    int binaryToken = Integer.parseInt(CHECKTOKEN,16);
    //convert to binary string so 55 becomes 85 becomes 1010101
    //should be 01010101
    String binaryValue = Integer.toBinaryString(binaryToken);
    //Calculate the number of required leading 0's
    int leading0s = 8 - binaryValue.length();
    //add leading 0s as needed
    while (leading0s != 0) {
        binaryValue = "0" + binaryValue;
        leading0s = leading0s - 1;
    }
    //so now I have a properly formatted hex to binary
    //binaryValue = 01010101
    System.out.println("Indicator" + binaryValue);
    /*
     * how to get the value of the least 
     * signigicant digit into a boolean 
     * variable... and the next?
     */
}

I think there must be a better way to perform the action. This is not elegant. Also, I'm stuck with a binary string value which needs to be processed somehow.

+2  A: 
public static void main(String[] args) {

    String hexString = "55";

    int value = Integer.parseInt(hexString, 16);

    int numOfBits = 8;

    boolean[] booleans = new boolean[numOfBits];

    for (int i = 0; i < numOfBits; i++) {
        booleans[i] = (value & 1 << i) != 0;
    }

    System.out.println(Arrays.toString(booleans));
}
Michael Barker
Thank you. I will try this out and see if it works.
Adam Outler
[true, false, true, false, true, false, true, false]Thank you!
Adam Outler
I've simplified the loop.
Michael Barker