Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert a byte into a boolean array of length 4 in Java

Tags:

java

byte

bit

I need to convert a byte into an array of 4 booleans in Java. How might I go about this?

like image 668
Agrajag9 Avatar asked Jun 17 '10 00:06

Agrajag9


People also ask

Can we convert byte to boolean in Java?

Method. This function converts the bytes in a byte array to its corresponding boolean value. A method that performs the same function as the bytesToBooleanArray() method but is not limited by input and output size. boolean[] out = new boolean[input.

What is byte [] in Java?

A byte in Java is 8 bits. It is a primitive data type, meaning it comes packaged with Java. Bytes can hold values from -128 to 127. No special tasks are needed to use it; simply declare a byte variable and you are off to the races.

Can we create boolean array in Java?

Java For TestersThe boolean array can be used to store boolean datatype values only and the default value of the boolean array is false. An array of booleans are initialized to false and arrays of reference types are initialized to null.


1 Answers

Per Michael Petrotta's comment to your question, you need to decide which bits in the 8-bit byte should be tested for the resulting boolean array. For demonstration purposes, let's assume you want the four rightmost bits, then something like this should work:

public static boolean[] booleanArrayFromByte(byte x) {
    boolean bs[] = new boolean[4];
    bs[0] = ((x & 0x01) != 0);
    bs[1] = ((x & 0x02) != 0);
    bs[2] = ((x & 0x04) != 0);
    bs[3] = ((x & 0x08) != 0);
    return bs;
}

The hexadecimal values (0x01, 0x02, etc.) in this example are special bit masks that have only a single bit set at the desired location; so 0x01 has only the rightmost bit set, 0x08 has only the fourth-from-right bit set. By testing the given byte against these values with the bitwise AND operator (&) you will get that value back if the bit is set, or zero if not. If you want to check different bits, other than the rightmost four, then you'll have to create different bitmasks.

like image 73
maerics Avatar answered Sep 23 '22 15:09

maerics