English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Programme Kotlin pour la conversion binaire-octale

Recueil d'exemples Kotlin

Dans ce programme, vous allez apprendre à utiliser les fonctions dans Kotlin pour convertir des nombres binaires en nombres octaux et vice versa.

Exemple1Programme de conversion binaire en octal

Dans ce programme, nous allons d'abord convertir le nombre binaire en nombre décimal. Ensuite, le nombre décimal est converti en nombre octal.

fun main(args: Array<String>) {
    val binary: Long = 101001
    val octal = convertBinarytoOctal(binary)
    println("$binary 二进制 = $octal en 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
}

Lorsque ce programme est exécuté, la sortie est :

101001 Binaire = 51 Décimal

Cette conversion se produit comme suit :

Binaire en décimal
1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 41
Décimal en octal
8 | 418 | 5 -- 1
8 | 0 -- 5
(51)

Exemple2Programme de conversion d'octal en binaire

Dans ce programme, le nombre octal est d'abord converti en nombre décimal. Ensuite, le nombre décimal est converti en nombre binaire.

fun main(args: Array<String>) {
    val octal = 67
    val binary = convertOctalToBinary(octal)
    println("$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 * .toLong()
        decimalNumber /= 2
        i *= 10
    }
    return binaryNumber
}

Lorsque ce programme est exécuté, la sortie est :

67 Décimal = 110111 Binaire

Cette conversion se produit comme suit :

De octal à décimal
6 * 81 + 7 * 80 = 55
De décimal à binaire
2 | 552 | 27 -- 1
2 | 13 -- 1
2 | 6  -- 1
2 | 3  -- 0
2 | 1  -- 1
2 | 0  -- 1
(110111)

Voici le code Java équivalent :Programme Java pour convertir un binaire en octal et inversement

Recueil d'exemples Kotlin