十进制、八进制和十六进制的integer常数都可以是正数和负数。
他们表面上不同,但本质是一样的:都是计算机里面的0和1。
C把任何一个不带后缀的十进制、八进制和十六进制的integer常数最先看为int(跳过了short和unsigned short)。
然后才一级一级的上升,当然又涉及了一些细节。
所以说一个整数常数可以是除了short和unsigned short之外的任何整数类型。
用printf()打印一个变量,如果是打印成十六进制或八进制,%o和%x都把变量看成unsigned类型,因此不可能打印出十六进制或八进制的负数。