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

Bù 1 và bù 2 của số nhị phân

Số nhị phân chỉ dùng 0 và 1. Mỗi chữ số gọi là bit.

Bù 1 (1's Complement)

Đảo ngược tất cả bit: 0→1, 1→0.

Bù 1 của 101100 = 010011

Bù 2 (2's Complement)

Bù 1 + 1.

Bù 2 của 101101 = 010011

Code ví dụ

#include <iostream>
#include <cstring>
using namespace std;

int main() {
    char binary[10] = "01001011";
    cout << "So nhi phan: " << binary;

    // Bù 1
    int len = strlen(binary);
    for (int i = 0; i < len; i++)
        binary[i] = (binary[i] == '0') ? '1' : '0';
    cout << "\nBu 1: " << binary;

    // Bù 2
    for (int i = len-1; i >= 0; i--) {
        if (binary[i] == '0') {
            binary[i] = '1';
            break;
        } else
            binary[i] = '0';
    }
    cout << "\nBu 2: " << binary;
    return 0;
}

Kết quả

So nhi phan: 01001011
Bu 1: 10110100
Bu 2: 10110101