Java Bit Set setBit(byte[] data, int index, boolean value)

Here you can find the source of setBit(byte[] data, int index, boolean value)

Description

set Bit

License

Open Source License

Declaration

public static void setBit(byte[] data, int index, boolean value) 

Method Source Code

//package com.java2s;
/*//from w w  w .  j av  a 2s .c  o  m
 *  Copyright 2010 jOpenRay, ILM Informatique  
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>
 */

public class Main {
    public static void setBit(byte[] data, int index, boolean value) {

        final int MAX = data.length * 8;
        if (index >= MAX || index < 0) {
            throw new IndexOutOfBoundsException("Index out of bounds: " + index);
        }

        int pos = data.length - index / 8 - 1;
        int bitPos = index % 8;

        int d = data[pos] & 0xFF;
        if (value) {
            d = d | (1 << bitPos);
        } else {
            d = d & ~(1 << bitPos);
        }
        data[pos] = (byte) d;

    }
}

Related

  1. setBit(byte[] b, int index)
  2. setBit(byte[] ba, int bit_offset, boolean on)
  3. setBit(byte[] byteArray, int index)
  4. setBit(byte[] bytes, int bitNr, int bit)
  5. setBit(byte[] bytes, int off, boolean v)
  6. setBit(byte[] data, int pos, boolean val)
  7. setBit(byte[] data, int pos, int val)
  8. setBit(byte[] data, int pos, int val)
  9. setBit(byte[] data, long pos, byte val)