mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
Added binary string to decimal converter (#6915)
added binary string to decimal converter
This commit is contained in:
committed by
GitHub
parent
ae2e40acab
commit
21eff8ad09
@@ -30,4 +30,30 @@ final class BinaryToDecimal {
|
||||
}
|
||||
return decimalValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a binary String to its decimal equivalent using bitwise operators.
|
||||
*
|
||||
* @param binary The binary number to convert.
|
||||
* @return The decimal equivalent of the binary number.
|
||||
* @throws IllegalArgumentException If the binary number contains digits other than 0 and 1.
|
||||
*/
|
||||
public static long binaryStringToDecimal(String binary) {
|
||||
boolean isNegative = binary.charAt(0) == '-';
|
||||
if (isNegative) {
|
||||
binary = binary.substring(1);
|
||||
}
|
||||
|
||||
long decimalValue = 0;
|
||||
|
||||
for (char bit : binary.toCharArray()) {
|
||||
if (bit != '0' && bit != '1') {
|
||||
throw new IllegalArgumentException("Incorrect binary digit: " + bit);
|
||||
}
|
||||
// shift left by 1 (multiply by 2) and add bit value
|
||||
decimalValue = (decimalValue << 1) | (bit - '0');
|
||||
}
|
||||
|
||||
return isNegative ? -decimalValue : decimalValue;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user