diff --git a/README.md b/README.md index 3f18fa06..2660d7cc 100644 --- a/README.md +++ b/README.md @@ -499,6 +499,48 @@ Inspired by [30 seconds of code](https://github.com/Chalarangelo/30-seconds-of-c ## Math +### Binary To Decimal + +```java + /** + * converts binary to decimal + * @param n number + */ + public static void binaryToDecimal(int n) { + String s = reverse(Integer.toString(n)); + int decimal=0; + + for (int i = 0; i < s.length(); i++) { + char ch = s.charAt(i); + if(ch=='1') { + decimal += Math.pow(2, i); + } + } + System.out.println(decimal); + } +``` + +### Decimal To Binary + +```java + /** + * converts decimal to binary + * @param n number + */ + public static void decimalToBinary(int n) { + int d; + String dec=""; + while(n!=0) { + d = n%2; + dec += Integer.toString(d); + n /= 2; + } + + String binary = reverse(dec); + System.out.println(binary); + } +``` + ### Fibonacci ```java diff --git a/src/main/java/math/Binary2DecimalSnippet.java b/src/main/java/math/Binary2DecimalSnippet.java new file mode 100644 index 00000000..60e2ae7f --- /dev/null +++ b/src/main/java/math/Binary2DecimalSnippet.java @@ -0,0 +1,38 @@ +package math; +import java.util.Scanner; + +/** Binary to Decimal Conversion + * Snippet + */ +class Binary2Decimal { + /** + * function to reverse a string + * @param str string + * @return rev reversed string + */ + public static String reverse(String str) { + String rev=""; + for (int i = str.length()-1; i >= 0; i--) { + char ch = str.charAt(i); + rev += ch; + } + return rev; + } + + /** + * converts binary to decimal + * @param n number + */ + public static void binaryToDecimal(int n) { + String s = reverse(Integer.toString(n)); + int decimal=0; + + for (int i = 0; i < s.length(); i++) { + char ch = s.charAt(i); + if(ch=='1') { + decimal += Math.pow(2, i); + } + } + System.out.println(decimal); + } +} diff --git a/src/main/java/math/Decimal2BinarySnippet.java b/src/main/java/math/Decimal2BinarySnippet.java new file mode 100644 index 00000000..432ea50b --- /dev/null +++ b/src/main/java/math/Decimal2BinarySnippet.java @@ -0,0 +1,37 @@ +package math; +import java.util.Scanner; +/** Binary to Decimal Conversion + * Snippet + */ +class Decimal2Binary { + /** + * reverse a string + * @param str string + * @return rev reversed string + */ + public static String reverse(String str) { + String rev=""; + for (int i = str.length()-1; i >= 0; i--) { + char ch = str.charAt(i); + rev += ch; + } + return rev; + } + + /** + * converts decimal to binary + * @param n number + */ + public static void decimalToBinary(int n) { + int d; + String dec=""; + while(n!=0) { + d = n%2; + dec += Integer.toString(d); + n /= 2; + } + + String binary = reverse(dec); + System.out.println(binary); + } +} diff --git a/src/test/java/math/Binary2DecimalSnippetTest.java b/src/test/java/math/Binary2DecimalSnippetTest.java new file mode 100644 index 00000000..9bcae292 --- /dev/null +++ b/src/test/java/math/Binary2DecimalSnippetTest.java @@ -0,0 +1,22 @@ +package math; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +/* + * Tests for 30 Seconds of Java code library + * + */ +class Binary2DecimalSnippetTest { + /** + * Tests for {@link Binary2DecimalSnippet#binaryToDecimal(int)}. + */ + @Test + void testLcm() { + assertEquals(9, Binary2DecimalSnippet.binaryToDecimal(1001)); + assertEquals(10, Binary2DecimalSnippet.binaryToDecimal(1010)); + assertEquals(72, Binary2DecimalSnippet.binaryToDecimal(1001000)); + assertEquals(7, Binary2DecimalSnippet.binaryToDecimal(111)); + } +} diff --git a/src/test/java/math/Decimal2BinarySnippetTest.java b/src/test/java/math/Decimal2BinarySnippetTest.java new file mode 100644 index 00000000..c813239f --- /dev/null +++ b/src/test/java/math/Decimal2BinarySnippetTest.java @@ -0,0 +1,22 @@ +package math; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +/* + * Tests for 30 Seconds of Java code library + * + */ +class Binary2DecimalSnippetTest { + /** + * Tests for {@link Decimal2BinarySnippet#decimalToBinary(int)}. + */ + @Test + void testLcm() { + assertEquals(1001, Decimal2BinarySnippet.decimalToBinary(9)); + assertEquals(1010, Decimal2BinarySnippet.decimalToBinary(10)); + assertEquals(1001000, Decimal2BinarySnippet.decimalToBinary(72)); + assertEquals(111, Decimal2BinarySnippet.decimalToBinary(7)); + } +}