#include<stdio.h> #include<limits.h> void main(){ //printf("short%d, int%d, long%d ", sizeof(short), sizeof(int), sizeof(long)); //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(); }
C short类型的内存分析
猜你喜欢
转载自www.cnblogs.com/luoxuw/p/11220139.html
今日推荐
周排行