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