Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# chuyển đổi thập phân sang bát phân (Octal)

Chuyển số nguyên dương từ cơ số 10 (thập phân) sang cơ số 8 (bát phân) bằng phép chia liên tiếp cho 8 và lấy phần dư ngược lại.

Thuật toán

  1. Chia số cho 8, lấy phần dư → chữ số bát phân (từ thấp đến cao).
  2. Thương tiếp tục chia cho 8 cho đến khi thương = 0.
  3. Đọc các phần dư ngược lại (từ cuối lên đầu).

Mã nguồn

using System;

class Demo {
    public static void Main() {
        int decVal = 40;
        int quot = decVal;
        int[] octalVal = new int[80];
        int i = 0;
        
        Console.WriteLine("Số thập phân: {0}", decVal);
        
        while (quot != 0) {
            octalVal[i++] = quot % 8;
            quot = quot / 8;
        }
        
        Console.Write("Số bát phân: ");
        for (int j = i - 1; j >= 0; j--) {
            Console.Write(octalVal[j]);
        }
        Console.Read();
    }
}

Kết quả

Số thập phân: 40
Số bát phân: 50

Kiểm tra: 5×8¹ + 0×8⁰ = 40 ✓

Cách hiện đại (Built-in)

int dec = 40;
string octal = Convert.ToString(dec, 8); // "50"
Console.WriteLine(octal);

// Ngược lại: bát phân → thập phân
int dec2 = Convert.ToInt32("50", 8); // 40

Bảng chuyển đổi nhanh

Thập phânBát phânNhị phân
00000
77111
8101000
4050101000
6377111111
641001000000

Lưu ý

  • Code gốc dùng mảng cố định size 80 — đủ cho int 32-bit (tối đa ~11 chữ số octal).
  • Xử lý riêng trường hợp decVal == 0 → in "0".
  • Đối với số âm: C# dùng bù 2, chuyển đổi phức tạp hơn — thường chuyển uint hoặc dùng Convert.ToString.