Added binary string to decimal converter (#6915)

added binary string to decimal converter
This commit is contained in:
Taranjeet Singh Kalsi
2025-10-27 02:09:39 +05:30
committed by GitHub
parent ae2e40acab
commit 21eff8ad09
2 changed files with 40 additions and 0 deletions

View File

@@ -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;
}
}