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

教程基础Java

Controllo dei flussi di Java

Array Java

Orientamento ad oggetti in Java (I)

Orientamento ad oggetti in Java (II)

Orientamento ad oggetti in Java (III)

Gestione delle eccezioni Java

Lista Java (List)

Queue (coda) Java

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Conversione tra numeri binari e ottali nei programmi Java

Esempi Java completi

In questo programma, imparerai a utilizzare le funzioni in Java per convertire numeri binari in numeri ottali e viceversa.

Esempio 1: Programma per convertire binario in ottale

In questo programma, prima convertiamo il numero binario in decimale. Poi, il numero decimale viene convertito in ottale.

public class BinaryOctal {
    public static void main(String[] args) {
        long binary = 101001;
        int octal = convertBinarytoOctal(binary);
        System.out.printf("%d binario = %d ottale", 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;
    }
}

Eseguendo questo programma, l'output è:

101001 binario = 51 ottale

Questa conversione avviene come:

Da binario a decimale
1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 41
Da decimale a ottale
8 | 418 | 5 -- 1
8 | 0 -- 5
(51)

Esempio 2: Programma per convertire ottale in binario

In questo programma, prima si converte un numero ottale in decimale. Poi, il numero decimale viene convertito in binario.

public class OctalBinary {
    public static void main(String[] args) {
        int octal = 67;
        long binary = convertOctalToBinary(octal);
        System.out.printf("%d in octal = %d binario", 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;
    }
}

Eseguendo questo programma, l'output è:

67 in ottale = 110111 binario

Questa conversione avviene come:

Da ottale a decimale
6 * 81 + 7 * 80 = 55
Da decimale a binario
2 | 552 | 27 -- 1
2 | 13 -- 1
2 | 6 -- 1
2 | 3 -- 0
2 | 1 -- 1
2 | 0 -- 1
(110111)

Esempi Java completi