char c=128; printf("c=%d\n",c); 结果为什么是-128
2014-11-16 19:31
393 查看
因为有符号字符型其范围为-128~127 127用二进制表示为:0111 1111,
128表示为1000 0000,这里发生溢出,因为第一位为1,为符号位,表示负数,即-128
相关文章推荐
- 【转】printf("%f/n",5)的输出结果为什么是0.000000
- 深度解析为何printf("%f",45);结果为零
- C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
- printf("12345"+2) 结果
- int a[5]={1,2,3,4,5}; int *p=(int*)(&a+1); printf("%d",*(p-1)); 答案为什么是5?
- 关于printf("%d,%d",m,m*m++);的输出结果,不管你知不知道,我之前反正不知道,偶然发现
- int i=3; printf("%d,%d,%d",i,i++,i++);结果是3,3,3,而int i=3; printf("%d,%d,%d",i+8,i+=5,i--);
- printf("%d",5.01)和printf("%f",5)的输出结果
- 结果是:空格空格3.0e+001,我不明白这加001是怎么回事啊?还有这个printf("%e\n",30.14);结果是3.014000e+001这是怎么算出来的?谁帮我讲下方法?
- printf("%d",5.01)和printf("%f",5)的输出结果
- printf("%d",5.01)和printf("%f",5)的输出结果
- 为什么printf("%f\n",5)输出0.000000
- printf("%d",5.01)和printf("%f",5)的输出结果
- printf("%d\v",n);奇怪的输出结果
- char c=128;printf("%d",c);问题
- C语言printf("%d",15.0/2)结果为0
- printf("%d",5.01)和printf("%f",5)的输出结果
- printf("%d",5.01)和printf("%f",5)的输出结果
- C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
- printf("%d",5.01)和printf("%f",5)的输出结果