In dit programma leer je om een binair getal om te zetten naar een octaal getal en omgekeerd met behulp van functies in Java.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:
- Java-methoden
- Java-operators
- Java while en do … while Loop
Voorbeeld 1: programma om binair naar octaal te converteren
In dit programma zullen we eerst een binair getal converteren naar een decimaal getal. Vervolgens wordt het decimale getal geconverteerd naar een octaal getal.
public class BinaryOctal ( public static void main(String() args) ( long binary = 101001; int octal = convertBinarytoOctal(binary); System.out.printf("%d in binary = %d in octal", binary, octal); ) public static int convertBinarytoOctal(long binaryNumber) ( int octalNumber = 0, decimalNumber = 0, i = 0; while(binaryNumber != 0) ( decimalNumber += (binaryNumber % 10) * Math.pow(2, i); ++i; binaryNumber /= 10; ) i = 1; while (decimalNumber != 0) ( octalNumber += (decimalNumber % 8) * i; decimalNumber /= 8; i *= 10; ) return octalNumber; ) )
Uitvoer
101001 in binair = 51 in octaal
Deze conversie vindt plaats als:
Binair naar decimaal 1 * 2 5 + 0 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 41 decimaal naar octaal 8 | 41 8 | 5 - 1 8 | 0 - 5 (51)
Voorbeeld 2: programma om octaal naar binair te converteren
In dit programma wordt het octale getal eerst decimaal naar decimaal. Vervolgens wordt het decimale getal geconverteerd naar een binair getal.
public class OctalBinary ( public static void main(String() args) ( int octal = 67; long binary = convertOctalToBinary(octal); System.out.printf("%d in octal = %d in binary", octal, binary); ) public static long convertOctalToBinary(int octalNumber) ( int decimalNumber = 0, i = 0; long binaryNumber = 0; while(octalNumber != 0) ( decimalNumber += (octalNumber % 10) * Math.pow(8, i); ++i; octalNumber/=10; ) i = 1; while (decimalNumber != 0) ( binaryNumber += (decimalNumber % 2) * i; decimalNumber /= 2; i *= 10; ) return binaryNumber; ) )
Uitvoer
67 in octaal = 110111 in binair
Deze conversie vindt plaats als:
Octaal naar decimaal 6 * 8 1 + 7 * 8 0 = 55 Decimaal naar binair 2 | 55 2 | 27 - 1 2 | 13 - 1 2 | 6-1 2 | 3-0 2 | 1 - 1 2 | 0-1 (110111)