I have an array where bytes 1,2,4,5,6,7, represent one big value in this way:

```
   (most significant) byte2-byte1-byte7-byte6-byte5-byte4 (less significant)

```

bytes = [43, 1, 0, -13, -112, 56, 94, 105, 20, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0]

how can I get this 48 bits new value?

this is what I tried so far: 

```
long byte1 = (bytes[0] & 0xFF);
byte1 = byte1<<32 ;         
long byte2 = (bytes[1] & 0xFF);
byte2 =byte2<<40;   

long time = (byte2|byte1|
                ((bytes[7] & 0xFF) << 24) |
                ((bytes[6] & 0xFF) << 16) |
                ((bytes[5] & 0xFF) << 8) |
                ((bytes[4] & 0xFF) << 0));

```

my expected output of time: 6062749840

I am getting even after using long: 1285963004048

00000000 000000001 01101001 01011110 00111000 10010000 = 6062749840