Πρόγραμμα Java για τη μετατροπή δυαδικού αριθμού σε Οκτάλ και αντίστροφα

Σε αυτό το πρόγραμμα, θα μάθετε να μετατρέπετε δυαδικό αριθμό σε οκταδικό αριθμό και αντίστροφα χρησιμοποιώντας συναρτήσεις στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:

  • Μέθοδοι Java
  • Τελεστές Java
  • Java ενώ και κάνουμε… ενώ Loop

Παράδειγμα 1: Πρόγραμμα μετατροπής δυαδικού σε Οκτάλ

Σε αυτό το πρόγραμμα, θα μετατρέψουμε πρώτα τον δυαδικό αριθμό σε δεκαδικό. Στη συνέχεια, ο δεκαδικός αριθμός μετατρέπεται σε οκτάλη.

 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; ) )

Παραγωγή

 101001 σε δυαδικό = 51 σε οκτάλη

Αυτή η μετατροπή πραγματοποιείται ως:

Δυαδικό έως δεκαδικό 1 * 2 5 + 0 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 41 Δεκαδικό έως Οκτάλ 8 | 41 8 | 5 - 1 8 | 0 - 5 (51)

Παράδειγμα 2: Πρόγραμμα μετατροπής του Octal σε δυαδικό

Σε αυτό το πρόγραμμα, ο οκταδικός αριθμός στο δεκαδικό έως το δεκαδικό στην αρχή. Στη συνέχεια, ο δεκαδικός αριθμός μετατρέπεται σε δυαδικό αριθμό.

 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; ) )

Παραγωγή

 67 σε οκτάλη = 110111 σε δυαδικό

Αυτή η μετατροπή πραγματοποιείται ως:

Οκταδικό έως δεκαδικό 6 * 8 1 + 7 * 8 0 = 55 Δεκαδικό έως δυαδικό 2 | 55 2 | 27 - 1 2 | 13 - 1 2 | 6 - 1 2 | 3 - 0 2 | 1 - 1 2 | 0 - 1 (110111)

ενδιαφέροντα άρθρα...