C++ day1 变量

发布时间 2023-09-17 21:13:43作者: _Eureka

ths

原码、反码、补码

机器数

int是最高位存放符号,假设int为8位:
1000 0011表示 -3; 0000 0011表示+3

原码, 反码, 补码

原码

pass

反码

正数的反码是本身,负数的反代eg:
原1000 0001 > 反1111 1110 > 补1111 1111

补码

正数的补码是本身,负数是其反码+1

作用

用于运算...

#include<iostream>
using namespace std;


long int pow(int a, int n){
    if(n>1){
        return a*pow(a, n-1);
    }else{
        return a;
    }
}

int main(){
    //爆内存之后会重新计数
    //unsigned的极限为全1, 11111111 11111111 11111111 11111111 = 2^32-1 0xffffffff
    unsigned int a=pow(2,32)-1;
    cout << a << ";" << a+1 << ";" << a+2 << endl;

    //有符号整型,最高位表示符号,全1时候表示-2^31-1
    int b=pow(2,31)-1; //此时为能表示的最高整数 01111111 11111111 11111111 11111111 = 2^31-1 0x7fffffff
    cout << b << ";" << b+1 << ";" << b+2 << endl;

    int c1 = 0xffffffff, c2 = 0x7fffffff, c3 = 0x80000000;
    cout << c1 << endl;
    cout << c2 << endl;
    cout << c3 << endl;

    return 0;
}

# 输出
4294967295;0;1
2147483647;-2147483648;-2147483647
-1
2147483647
-2147483648