今天给各位分享c语言65535的知识,其中也会对c语言52进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
c语言中%u范围是0-65535,为什么输出是65535
1、u为以无符号十进制输出。无符号整数能表示的数范围是0-65535,即对应的二进制数0-1111111111111111(16个1)。int x=-1;x为有符号的整型,以1111111111111111(16个1)的二进制数存储。
2、所以1111111111111111被认为是某一负数的补码,又根据补码的计算方法计算源码(负数符号位不变,数据位取反加1)为1000000000000001,为—1,所以得出如此结果。
3、首先,不同的CPU平台,计算的结果肯定不同的,你说的65535 应该是16位的。这个问题的关键是理解 -1的机器码表示。 我们都知道有符号数或者说负整数在计算机中是二进制补码的形式表示的。
4、在32位的编译系统中,-1的补码是11111111111111111111111111111111;根据运行结果,你是情况属于16编译系统;-1的补码1111111111111111以无符号整数%u输出就是65535。即(65535)10=(1111111111111111)2。
5、在vc++0编译系统下,int型为32位,输出结果为:65535,177777,ffff,65535 -2,3777777777fffffffe,4294967294 d,%o,%x,%u分别表示用有符号十进制、无符号八进制、无符号、无符号十进制形式输出。
关于c语言65535和c语言52的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。