[英]I am assuming size of integer 2 byte and getting different value in c
#include<stdio.h>
void main()
{
unsigned int i=65535;//assume that size of integer is 2 byte
printf("%d",i);
}
输出= -1 //如果整数的大小是2个字节
输出= 65535 //如果整数的大小为4字节
谁能解释我为什么打印-1而不是65535
根据我的说法,整数的大小是2字节,即16位。 i = 65535(十进制值)65535的二进制表示形式是1111111111111111。因此它可以轻松容纳65535
使用"%u"
转换,而不是"%d"
。 这些都为转换说明unsigned
(int)和signed
(INT)分别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.