#include <iostream>
//带符号整数在内存中的存储
void main()
{
//所有整数类型 分两种
//无符号整数 也就是 只有 正整数(+) 和 零(0)
//有符号整数 也就是 有 负数(-) 正整数(+) 和 零(0)
//正整数 在内存中的存储 就是其 二进制形式
//负数 在内存中的存储 就是 其绝对值的二进制形式 取反 再加1
//比如
int a = 10;
/*
10 的二进制 就是 1010 单字节补全 0000 1010
int类型 4字节 补全 00000000 00000000 00000000 00001010
按照低字节优先规则存储 00001010 00000000 00000000 00000000
*/
int b = -10;
/*
由于 10 是负数 所以 会取其绝对值
按照int类型 4字节补全 其绝对值为:
00000000 00000000 00000000 00001010
按位 取反 (每一位 0变1 1变0)
11111111 11111111 11111111 11110101
加 1
11111111 11111111 11111111 11110110
FF FF FF F6
按照低字节位优先 存入内存中
F6 FF FF FF
*/
/*
假设 内存中有数据 55 66 77 88
该数据是否是负数 就先取出数据(先取得的是低字节 注意顺序)
88 77 66 55
10001000 01110111 01100110 01010101
最高位是 1 为负数
先减 1
10001000 01110111 01100110 01010100
按位取反
01110111 10001000 10011001 10101011
转十进制 并添加负号
-2005440939
*/
int c = -2005440939;
system("pause");
}