返回首页 C++ 模板

数据编码模板

原码、反码、补码——计算机如何表示和存储整数

原码 反码 补码 编码 GESP3
#include <bits/stdc++.h>
using namespace std;

int main() {
    // 查看整数的二进制表示
    int a = 5;
    cout << bitset<8>(a) << endl;     // 00000101
    cout << bitset<8>(-a) << endl;    // 11111011 (补码)

    // 补码理解
    // 正数:补码 = 原码
    // 负数:补码 = 反码 + 1
    // 例如 -5: 原码 10000101 → 反码 11111010 → 补码 11111011

    // 为什么用补码?
    // 1. 统一了加减法:5 + (-5) = 0
    // 2. 避免了 +0 和 -0 的问题

    // 验证补码加法
    int x = 5, y = -5;
    cout << bitset<8>(x) << endl;     // 00000101
    cout << bitset<8>(y) << endl;     // 11111011
    cout << bitset<8>(x+y) << endl;   // 00000000

    // ASCII 编码
    char ch = 'A';
    cout << (int)ch << endl;          // 65
    cout << char(97) << endl;         // 'a'

    // 大小写转换
    char upper = 'A', lower = upper + 32;  // 'a'
    // 或者
    lower = upper - 'A' + 'a';

    return 0;
}

📖 要点说明

⚠️ 常见错误