Here you can find the source of InvertBytes(Boolean[] dataToInvert)
public static Boolean[] InvertBytes(Boolean[] dataToInvert)
//package com.java2s; /*//from w ww . j a v a2s .c om * Copyright 2017 ozkr16. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Main { public static Boolean[] InvertBytes(Boolean[] dataToInvert) { Boolean[] fakeByte = new Boolean[8]; Boolean[] result = new Boolean[dataToInvert.length]; Boolean[] fakeByteReversed; int k = 0; for (int i = 0; i <= dataToInvert.length; ++i) { if (i % 8 == 0 && i != 0) { fakeByteReversed = InvertBitsInByte(fakeByte); int positionWhithinByte = 0; for (Boolean bit : fakeByteReversed) { result[k * 8 + positionWhithinByte] = bit; ++positionWhithinByte; } fakeByteReversed = null; ++k; } if (i < dataToInvert.length) { fakeByte[(i % 8)] = dataToInvert[i]; } } return result; } public static Boolean[] InvertBitsInByte(Boolean[] booleanByte) { int dataLenght = booleanByte.length; Boolean[] invertedBytes = new Boolean[dataLenght]; int index = 0; for (boolean bit : booleanByte) { invertedBytes[dataLenght - index - 1] = bit; ++index; } return invertedBytes; } }