繁体   English   中英

我假设整数2字节的大小,并在c中获得不同的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM