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

2024-11-22 07:26:38
推荐回答(1个)
回答1:

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