回 帖 发 新 帖 刷新版面

主题:TC中int和long的十六进制输出问题

#include <stdio.h>
#include <conio.h>

int main()
{
 int a=256;
 long b=65536;
 printf("%d(0x%X)\n",a,a);
 printf("%ld(0x%X)\n",b,b);
 getch();
}

TC下得到的结果:
256(0X100)
65536(0X0)

C++下面得到
256(0X100)
65536(0X10000)

C++下面是对的,但是我想问一下TC下面那个结怎么回事.好像长整形前两字节没有输出.

回复列表 (共1个回复)

沙发

printf("%ld(0x%lX)\n",b,b);     /*括号里面也加个l*

我来回复

您尚未登录,请登录后再回复。点此登录或注册