#include<stdio.h>
#include<limits.h>
void main(){
//printf("short%d, int%d, long%d ", sizeof(short), sizeof(int), sizeof(long)); //sizeof()是运算符,不是函数,没有定义
//32位,64位系统int和long是等价的,都是4个字节
//short只有2个字节,一般在内存资源不够的情况下使用,比如嵌入式开发
short shMax = SHRT_MAX;
short shMin = SHRT_MIN;
printf("shMAX is %d, shMin is %d \n", shMax, shMin);
unsigned short ushMax = USHRT_MAX;
// unsigned short ushMin = USHRT_MIN; 无符号的short最小值 是0
printf("ushMAX is %d, ", ushMax);
// short的内存分析
//short 2个字节 16个1 1111 1111 1111 1111 第一位的1代表符号位,0是正数,1是负数, 有效数据位是15位
//usigned short 2个字节 16个1 1111 1111 1111 1111 有效数据位是16位
// 结论:同样16个1,在不同的解析下,表示的意义完全不一样
short x = -1;
printf("the address of x is %x", &x);
//-1的原码是 1000 0000 0000 0001
//-1的反码是 1111 1111 1111 1110
//-1的补码是 1111 1111 1111 1111
// 16进制: f f f f 内存中表示的数
getchar();
}