如题所述
int a=0xfffffff; //十六进制,十进制的268435455
int b=025; //八进制,十进制的21
int b=025; //八进制,十进制的21
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-10-12
前缀是0x表示的是的数值,前缀是0表示的是八进制的数值。追问
int main()
{
int a=0xfffffff;
printf("int类型占几个字节:%d\n",sizeof(int));
printf("a=0x%x\n",a); //以16进制格式打印出来
printf("a=%d\n",a); //以十进制格式打印出来
a=a+1;
printf("a=0x%x\n",a); //以16进制格式打印出来
printf("a=%d\n",a); //以十进制格式打印出来
return 0;
}本回答被提问者采纳
那要给a加上1是,a=0xfffffff+1吗,为什么结果会差很多,还有int类型占用多少字符怎么判断
追答这个你可以用printf("int=%d",sizeof(int));来打印出int类型占用几个字节,因为int是有符号的类型,你可以用一条打印语句打印出来,示例程序如下:
#include <stdio.h>int main()
{
int a=0xfffffff;
printf("int类型占几个字节:%d\n",sizeof(int));
printf("a=0x%x\n",a); //以16进制格式打印出来
printf("a=%d\n",a); //以十进制格式打印出来
a=a+1;
printf("a=0x%x\n",a); //以16进制格式打印出来
printf("a=%d\n",a); //以十进制格式打印出来
return 0;
}本回答被提问者采纳