C内存:
栈:局部变量、函数形参 由编译器管理(函数结束,内存释放)
堆: malloc 开辟空间 free 释放空间 由程序员管理
全局区/静态存储区: 全局变量和静态变量 编译器管理: 程序结束,内存释放
常量区:存储常量 编译器管理
代码区:存放编写的代码 编译器管理
一般全局静态区和常量区都是放在一起的
----------
bit 比特
byte 字节 = 8bit
word = 4 byte
---------
计算机里面的计算都是用反码来计算的
原码
最高位作为符号位 (0代表正 1代表负)
7 0000 0111 -7 1000 0111
127 0111 1111 -127 1111 1111
反码
如果为正 与原码相同 。 如果为负 ,符号位为1,其他与原码相反
7 0000 0111 -7 1111 1000
补码
正数 原码 反码 补码 都一样
负数: 反码 +1
7 0000 0111 -7 1111 1001
使用反码求原数据,如上面 -7 除符号位其他各位求反 1000 0110 再加1 就得到了原数据
计算机内正负数都是用补码来计算的

如上图我输出的是十六进制的-10,实际上输出的是-10的反码
-10 原码 1000 0000 0000 0000 0000 0000 0000 0000 1010
反码 1111 1111 1111 1111 1111 1111 1111 1111 0101
补码 1111 1111 1111 1111 1111 1111 1111 1111 0110
f f f f f f f f 6
如果是+10的话 就是正常输出 10的16进制为 a