C 程序运行结果

main()
{long y=23456;
printf("y=%3x\n",y);
printf("y=%8x\n",y);
printf("y=%#8x\n",y);
}
运行结果是什么呢?答的好再送分。我这原本是一道选择题,选项中竟然都有5ba0这是怎么回事啊?
%x是以十六进制输出的格式控悉蠢宴制符。#表示不省略“0x”。数字表示输出数的总长度,不足用空格补足。
y=5ba0
y= 5ba0
y= 0x5ba0
说明:上面的可能看不清楚,第睁银2行数前补4个空格,第3行数前补2个空格。
另外,long应该用%lx,否则编译档让器可能有警告。
%x是什么意思啊