unsigned char问题..给我讲讲吧..
C语言。有符号型singed和无符号型unsigned适用于char型,int型和long型三种类型,区别在于它们的最高位是否为符号。。
1。最高位是什么??是什么符号??不理解
#include <stdio.h>
main()
char a1;
unsigned char a2;
a1=129;
a2=129;
printf("a1=%d,a2=%u\n",a1,a2);
}
最后结果a1=-127,a2=129
这到底是怎么计算的??完全不懂。。a1为什么会等于-127??讲一下。。
最好给个例子分析下。。
----------------解决方案--------------------------------------------------------
char的范围是-128到127(-2^7到2^7-1),最高位用来表示符号位,一般是0表示正,1表示负。a1=129在内存中表示为:10000010(补码)转换成原码就为111111110即-127`````
----------------解决方案--------------------------------------------------------