Add SingleBitOperations (#4415)

* SingleBitOperators

* Tests

* Update SingleBitOperatorTest.java

* Update SingleBitOperators.java

* Update SingleBitOperators.java

* Update SingleBitOperators.java

* Update SingleBitOperatorTest.java

* deliting files

* Update SingleBitOperators.java

* Update SingleBitOperatorTest.java

* Update SingleBitOperators.java

* Update SingleBitOperators.java

* Update SingleBitOperatorTest.java

* Update SingleBitOperatorTest.java

* Update and rename SingleBitOperators.java to SingleBitOperator.java

* Update SingleBitOperatorTest.java

* Update SingleBitOperator.java

* Update SingleBitOperator.java

* Update SingleBitOperator.java

* style: declare private default constructor

* fix: remove `SetBitTest.java`

* Update and rename SingleBitOperator.java to SingleBitOperations.java

* Update SingleBitOperatorTest.java

* Update SingleBitOperations.java

* Update and rename SingleBitOperatorTest.java to SingleBitOperationsTest.java

---------

Co-authored-by: Piotr Idzik <65706193+vil02@users.noreply.github.com>
This commit is contained in:
Lukas
2023-09-30 10:06:45 +02:00
committed by GitHub
parent ea0eef128d
commit e5d33f3565
6 changed files with 66 additions and 47 deletions

View File

@ -1,11 +0,0 @@
package com.thealgorithms.bitmanipulation;
/**
* Clears the bit located at clear from num
*/
public class ClearBit {
public static int clearBit(int num, int clear) {
int mask = ~(1 << clear);
return num & mask;
}
}

View File

@ -1,10 +0,0 @@
package com.thealgorithms.bitmanipulation;
/**
* Sets a specific bit to 1
*/
public class SetBit {
public static int setBit(int num, int bit) {
return num | (1 << bit);
}
}

View File

@ -0,0 +1,34 @@
package com.thealgorithms.bitmanipulation;
/*
* Author: lukasb1b (https://github.com/lukasb1b)
*/
public final class SingleBitOperations {
private SingleBitOperations() {
}
/**
* Flip the bit at position 'bit' in 'num'
*/
public static int flipBit(final int num, final int bit) {
return num ^ (1 << bit);
}
/**
* Set the bit at position 'bit' to 1 in the 'num' variable
*/
public static int setBit(final int num, final int bit) {
return num | (1 << bit);
}
/**
* Clears the bit located at 'bit' from 'num'
*/
public static int clearBit(final int num, final int bit) {
return num & ~(1 << bit);
}
/**
* Get the bit located at 'bit' from 'num'
*/
public static int getBit(final int num, final int bit) {
return ((num >> bit) & 1);
}
}