数据类型分类:
可以大致分为整数组、浮点组、自定义类型及指针。
整形组
char , short, int。
其中short, int 默认为signed。
char需要看编译器。
浮点组
float, double。
默认为signed。
自定义类型
有数组、枚举、结构体、联合。
指针
void*、int*等。
原码/反码/补码
这三者都是指二进制码。
反码、补码是对数据进行访问或运算时需要进行的操作。
对于正数而言,三码合一。
所以以下均以负数为例。
原码
原码就是数据本身的二进制码。
int a = -1;
//-1 的二进制码为10000000 00000000 00000000 00000001
//注意最高位为符号位,0代表正数,1代表负数
//则其原码就是10000000 00000000 00000000 00000001
反码
反码就是将原码除符号位外其余取反(0 -> 1 or 1 -> 0)。
int a = -1;//原码上面有
//反码为11111111 11111111 11111111 11111110
补码
补码就是将反码+1。
int i = -1;