CB *_*ley 27
数字本身始终被解释为非负数.十六进制常量没有符号或任何固有的方式来表示负数.常量的类型是第一个可以表示它们的值:
int
unsigned int
long int
unsigned long int
long long int
unsigned long long int
Ara*_*raK 11
它将它们视为int文字(基本上,作为signed int!).要编写一个无符号文字,只需u在末尾添加:
0x23FEu
根据cppreference,十六进制文字的类型是以下列表中可以容纳该值的第一个类型。
int
unsigned int
long int
unsigned long int
long long int(since C99)
unsigned long long int(since C99) 
所以这取决于你的数字有多大。如果你的数字小于INT_MAX,那么它就是类型int。如果您的数字大于INT_MAX但小于UINT_MAX,则它的类型为unsigned int,依此类推。
由于0x23FE小于INT_MAX(等于0x7FFF或大于),因此它的类型为int。
如果您希望它是无符号的,请u在数字末尾添加一个:0x23FEu。