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

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

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

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

 fun main(args: Array) ( val binary: Long = 101001 val octal = convertBinarytoOctal(binary) println("$binary in binary = $octal in octal") ) fun convertBinarytoOctal(binaryNumber: Long): Int ( var binaryNumber = binaryNumber var octalNumber = 0 var decimalNumber = 0 var i = 0 while (binaryNumber.toInt() != 0) ( decimalNumber += (binaryNumber % 10 * Math.pow(2.0, i.toDouble())).toInt() ++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 σε δυαδικό

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

 fun main(args: Array) ( val octal = 67 val binary = convertOctalToBinary(octal) println("$octal in octal = $binary in binary") ) fun convertOctalToBinary(octalNumber: Int): Long ( var octalNumber = octalNumber var decimalNumber = 0 var i = 0 var binaryNumber: Long = 0 while (octalNumber != 0) ( decimalNumber += (octalNumber % 10 * Math.pow(8.0, i.toDouble())).toInt() ++i octalNumber /= 10 ) i = 1 while (decimalNumber != 0) ( binaryNumber += (decimalNumber % 2 * i).toLong() 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)

Εδώ είναι ο ισοδύναμος κώδικας Java: Πρόγραμμα Java για μετατροπή δυαδικού σε Octal και αντίστροφα

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