Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to get the binary values of the bytes stored in byte array

Tags:

java

i am working on a project that gets the data from the file into a byte array and adds "0" to that byte array until the length of the byte array is 224 bits. I was able to add zero's but i am unable to confirm that how many zero's are sufficient. So i want to print the file data in the byte array in binary format. Can anyone help me?

like image 610
Pramod Avatar asked Jun 18 '11 04:06

Pramod


2 Answers

For each byte:

  • cast to int (happens in the next step via automatic widening of byte to int)
  • bitwise-AND with mask 255 to zero all but the last 8 bits
  • bitwise-OR with 256 to set the 9th bit to one, making all values exactly 9 bits long
  • invoke Integer.toBinaryString() to produce a 9-bit String
  • invoke String#substring(1) to "delete" the leading "1", leaving exactly 8 binary characters (with leading zeroes, if any, intact)

Which as code is:

byte[] bytes = "\377\0\317\tabc".getBytes();
for (byte b : bytes) {
    System.out.println(Integer.toBinaryString(b & 255 | 256).substring(1));
}

Output of above code (always 8-bits wide):

11111111
00000000
11001111
00001001
01100001
01100010
01100011
like image 196
Bohemian Avatar answered Oct 09 '22 00:10

Bohemian


Try Integer.toString(bytevalue, 2)

Okay, where'd toBinaryString come from? Might as well use that.

like image 29
Charlie Martin Avatar answered Oct 08 '22 23:10

Charlie Martin