为什么定义的unsigned 变量printf输出char 和输出int 不一样

2024年11月22日 07:26
有1个网友回答
网友(1):

因为旁悔%d是按有符号的int整轿启稿型输出的,unsigned char和unsigned short转成signed int型,前面都会补0,即0x000000ff和0x0000ffff,所以都是正数,而unsigned long和unsigned int转完后是0xffffffff,闭孝所以是-1。你如果用%u打印就都是正数了。