int a=-2; printf("%u",a);输出为:65534.为什么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/20 10:40:09

int a=-2; printf("%u",a);输出为:65534.为什么?
int a=-2; printf("%u",a);输出为:65534.为什么?

int a=-2; printf("%u",a);输出为:65534.为什么?
%u为以无符号十进制输出.无符号整数能表示的数范围是0-65535,即对应的二进制数0-1111111111111111(16个1).
int a=-2;a为有符号的整型,以1111111111111111(16个1)的二进制数存储.(-2二进制表示为10000000000000010,负数在计算机中用补码表示,即1111111111111110).如果用%d输出a,则为-2,但是转换成无符号整数%u输出,1111111111111110(原来的有符号整数-1)被解释成1111111111111110(无符号整数65534),输出结果为65534

int a=-2; printf(%u,a);输出为:65534.为什么? void fun(int p) { int d=2; p=d++; printf(%d,p); } main() { int a=1; fun(a); printf(%d ,a); } #include void fun(int p) { int d=2; p=d++; printf(“%d”,p);} main() { int a=1; fun(a); printf(“%d -1用8进制和16进制表示是什么,怎么算的,main(){unsigned int a = 65535;int b =-2;printf(”a = %d,%o,%x,%u ”,a,a,a,a);printf(”b = %d,%o,%x,%u ”,b,b,b,b);}运行结果为:a =-1,177777,ffff,65535b =-2,177776,fffe,65534 一个C程序的理解 麻烦给我解释下语句的意思#includemain(){unsigned int a=65535;int b=-2;printf(a=%d,%o,%x,%u ,a,a,a,a);printf(b=%d,%o,%x,%u ,b,b,b,b);} 若int 类型占两个字节,则下列程序段的输出是()int =-1;printf(%d,%u ,a a); 若int 类型占两个字节,则下列程序段的输出是()int =-1;printf(%d,%u,a a); { int a[]={1,2,3,4,5,6}; int*p; p=a; printf(%d ,*p); printf(%d ,*(++p)); printf(%d ,*++p);{ int a[]={1,2,3,4,5,6};int*p;p=a;printf(%d ,*p);printf(%d ,*(++p));printf(%d ,*++p);printf(%d ,*(p--));P+=3;printf(%d%d,*p,*(a+3));}求 #includestdio.hmain(){int a=-1 printf(%d,%u,%o,%x ,a,a,a,a);}结果怎么算出来的告诉一下 下面这个程序看不懂,#include stdio.hint main(){ int a,c; for(;scanf(%1d,&a),a>0;printf(%d ,--a%9u+1)) while((c=getchar())-48u main() {int a[6],i; for(i=1;i3))%5; printf(%2d,a[i]);} } 一个关于C语言指针的问题,源程序:#include intmain(){int a[5]={1,2,3,4,5};int *ptr1=(int *)(&a+1);int *ptr2=(int *)((int)a+1);printf(%x,%x,ptr1[-1],*ptr2);return 0;} int a=1; int b=0; printf(%d,b=a+b); printf(%d,a=a*b); Int a=1; Int *p; p=&a; printf(“%d ”,*p); 和Int a=1; Int*p; *p=a; printf(“%d ”,*p); :::: 请高手帮忙解释下这段程序 int a;a=(int)((double)(3/2)+0.5+(int)1.99*2); printf(%d ,a);结果为3. int a=10;f1(){int a=20;printf(%d,a);}f2(){printf(%d,a);}main ( ){int a=30;f1();f2(); printf(a)int a=10;f1(){int a=20;printf(%d,a);}f2(){printf(%d,a);}main ( ){int a=30;f1();f2();printf(%d,a);}答案是 20 10 30求解答. main() { int a=2;a%=4-1; printf(\n%d,,a); a+=a*=a-=a*=3; printf(%d,a); } 我的式子错在哪?#include#include#include int main(void) { char ch; printf(A新增 ); printf(D删除 ); printf(U修改 ); printf(Q离开 ); printf(请选择功能选项); ch = getchar(); ch = toupper(ch); switch(ch) { case'A':