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 nhị phân (Binary)

Chuyển số nguyên dương từ cơ số 10 sang cơ số 2 bằng phép chia liên tiếp cho 2, lấy phần dư (0 hoặc 1) đọc ngược lại.

Thuật toán

  1. Chia n cho 2, lấy phần dư n % 2 (0 hoặc 1).
  2. Cập nhật n = n / 2.
  3. Lặp cho đến khi n == 0.
  4. Đọc các phần dư ngược lại (từ cuối lên đầu).

Mã nguồn

using System;

namespace Demo {
    class MyApplication {
        static void Main(string[] args) {
            int decVal = 34;
            Console.WriteLine("Thập phân: {0}", decVal);
            
            string binary = "";
            while (decVal >= 1) {
                binary = (decVal % 2) + binary; // Nối vào ĐẦU chuỗi
                decVal /= 2;
            }
            
            Console.WriteLine("Nhị phân: {0}", binary);
            Console.Read();
        }
    }
}

Kết quả

Thập phân: 34
Nhị phân: 100010

Kiểm tra: 1×32 + 0×16 + 0×8 + 0×4 + 1×2 + 0×1 = 34 ✓

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

int n = 34;
string binary = Convert.ToString(n, 2); // "100010"

// Có padding độ dài cố định (vd: 8 bit)
string binary8 = Convert.ToString(n, 2).PadLeft(8, '0'); // "00100010"

// Ngược lại: nhị phân → thập phân
int dec = Convert.ToInt32("100010", 2); // 34

Lưu ý

  • Code gốc dùng chuỗi a lưu phần dư theo thứ tự ngược, sau đó đảo lại bằng vòng lặp — phức tạp không cần thiết. Cách đơn giản: binary = (n%2) + binary (nối vào đầu).
  • Xử lý riêng n == 0 → trả về "0".
  • Convert.ToString(n, 2) xử lý số âm theo bù 2 (32-bit).
  • Để format nhị phân đẹp: string.Join(" ", binary.Chunk(4).Select(c => new string(c))) → "0010 0010".