ldcf.net
当前位置:首页 >> C语言中 printF("%u\n", i*%1);里面的i*%1是什么意思 >>

C语言中 printF("%u\n", i*%1);里面的i*%1是什么意思

i*-1的意思是i与-1的乘积,可以写为i*(-1)或(-1)*i。意思是取i的相反数。如i=3,则运算的结果为-3,i=-3,则运算的结果为3。 printf中%u表示将结果按无符号整数形式输出, '\n'表示回车 规定符说明: %d 十进制有符号整数 %u 十进制无符号整数 %f...

刚开始-1被识别为int类型,但是unsigned * int,int类型会被隐式转化为unsigned类型,-1的位级表示是0xFFFFFFFF,于是这里两个unsinged类型的相乘。0xFFFFFFFF * 0x3 = 0x2FFFFFFFD,由于是取其商,商为32位,因此对于乘得的结果进行阶段,留下3...

-1,4294967295;65536,65536;原因是u表示无符号整形,无符号整形的范围是0-65535,而-1超出了这个范围,输出会出错;

因为从二进制的角度而言,i为16位数,如果以u的格式看,则为无符号,所有位有效,65535就是十进制的2的16次方-1,正好是二进制10000000000000000-1,为全部为1,也就是1111111111111111。 当采用八进制或者16进制时,全部当无符号数看,也就是所...

答案为A %u是以无符号整型方式输出,对于整数来说是采用二进制补码存储的。 你只要熟悉这二进制补码,应该不难。 对于正数来说,原码就是将它转换成二进制。 65535=(1111 1111 1111 1111)2 正数的补码就是其原码,即a在内存中就是以这种形式存储...

#includevoid main(){unsigned int a,b,n,mode,i;scanf("%u",&a);n=sizeof(unsigned int)*8; //b=a;mode=1;for( i=0;i

网站首页 | 网站地图
All rights reserved Powered by www.ldcf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com