mlsb.net
当前位置:首页 >> voiD mAin{unsignED long n; unsignED int E; int ... >>

voiD mAin{unsignED long n; unsignED int E; int ...

你的问题出在格式说明符上,unsigned long应该用%lu,unsigned int应该用%u,这样就可以了。结果应该是2。

#include int main(void){ unsigned long int value = 13; printf("value: %ld\n", value); return 0;}

scanf("%c,%c",&c1,&c2); 改成: scanf("%c",&c1); scanf("%c",&c2); 这个语句分开获取就可以获取字符的值了,printf("c1=%c,c2=%c\n",c1,c2);

分给我吧? union { unsigned long b; unsigned char c[4]; }a; unsigned int d[2]; a.b = 0x12345678; d[0] = a.c[3]; d[1] = a.c[2]; printf("%x %x\n",a.c[3],a.c[2]); printf("%x %x\n",d[0],d[1]); printf("%d %d\n",d[0],d[1]);

答案100,4294967296 因为b是整形,d是无符号的,所以结果如此

无符号数打印用u,比如printf("signed int max = %d\t", signed_i);改成printf("signed int max = %u\t", signed_i);

因为结构里的这一句 unsigned int :0; 的原因,unsigned int :0;表示第一个int的剩余部分不使用 所以占两个int

没有区别,很早以前机器的硬盘容量小,设置一个简写只是为了让你的cpp文件小一点。 i++和i = i + 1也是出于同样的目的,可惜现在都变成了奇形怪状的考试题了。

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

a是int型变量,int=signed long (有符号长整型),就是有正负之分。 int的范围是 -(2^31)-1 ~ (2^31)-1 %u是unsigned,无符号,就是没有正负之分,只有正数,负数也当作正数处理。 这里的范围是一个环状的,-1的无符号型并不是1,而是2^32-1,...

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