convert decimal to octal value
This commit is contained in:
parent
c7f8f772c0
commit
df085d0e1d
26
src/main/java/com/conversions/DecimalToOctal.java
Normal file
26
src/main/java/com/conversions/DecimalToOctal.java
Normal file
@ -0,0 +1,26 @@
|
||||
package src.main.java.com.conversions;
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
public class DecimalToOctal {
|
||||
private static final char octalChars[] = {'0','1','2','3','4','5','6','7'};
|
||||
private static final BigInteger valueOctal = new BigInteger("8");
|
||||
|
||||
/**
|
||||
* This method converts and decimal number to a octal number
|
||||
* @param decimalStr
|
||||
* @return octal number
|
||||
*/
|
||||
public String decimalToOctal(String decimalStr){
|
||||
BigInteger decimal = new BigInteger(decimalStr);
|
||||
|
||||
int rem;
|
||||
String octal = "";
|
||||
while(decimal.compareTo(BigInteger.ZERO) > 0) {
|
||||
rem = decimal.mod(valueOctal).intValueExact();
|
||||
octal = octalChars[rem] + octal;
|
||||
decimal = decimal.divide(valueOctal);
|
||||
}
|
||||
return octal;
|
||||
}
|
||||
}
|
16
src/test/java/com/conversions/DecimalToOctalTest.java
Normal file
16
src/test/java/com/conversions/DecimalToOctalTest.java
Normal file
@ -0,0 +1,16 @@
|
||||
package src.test.java.com.conversions;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class DecimalToOctalTest {
|
||||
@Test
|
||||
public void testDecimalToOctalTest() {
|
||||
DecimalToOctal decimalToOctal = new DecimalToOctal();
|
||||
Assert.assertEquals("Incorrect Conversion", "41", decimalToOctal.decimalToOctal("33"));
|
||||
Assert.assertEquals("Incorrect Conversion", "5512", decimalToOctal.decimalToOctal("2890"));
|
||||
Assert.assertEquals("Incorrect Conversion", "12525252525252525252525241", decimalToOctal.decimalToOctal("50371909150609548946081"));
|
||||
Assert.assertEquals("Incorrect Conversion", "13", decimalToOctal.decimalToOctal("11"));
|
||||
Assert.assertEquals("Incorrect Conversion", "46703754", decimalToOctal.decimalToOctal("10192876"));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user