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

Tổng hai số nhị phân không dùng phương thức trong C#

Cộng hai số nhị phân trực tiếp trong Main (không tách method), xử lý bit bởi bit với biến nhớ (carry).

Ví dụ minh họa

using System;

class Program
{
    static void Main()
    {
        long val1 = 11010; // 26 decimal
        long val2 = 10100; // 20 decimal
        
        Console.WriteLine($"Nhị phân 1: {val1}");
        Console.WriteLine($"Nhị phân 2: {val2}");
        
        long[] sum = new long[64];
        int i = 0, carry = 0;
        
        while (val1 != 0 || val2 != 0)
        {
            int bit1 = (int)(val1 % 10);
            int bit2 = (int)(val2 % 10);
            
            sum[i++] = (bit1 + bit2 + carry) % 2;
            carry = (bit1 + bit2 + carry) / 2;
            
            val1 /= 10;
            val2 /= 10;
        }
        
        if (carry != 0) sum[i++] = carry;
        
        Console.Write("Tổng = ");
        while (i > 0) Console.Write(sum[--i]);
        Console.WriteLine();
    }
}

Kết quả đầu ra

Nhị phân 1: 11010
Nhị phân 2: 10100
Tổng = 101110

Kiểm tra: 11010₂ = 26, 10100₂ = 20, 101110₂ = 46. ✓ 26+20=46.

Cách hiện đại hơn: Dùng string và Convert.ToInt32(str, 2) + Convert.ToString(sum, 2) - dễ đọc, ít lỗi hơn.