可以这么理解。纠正一下,不是u% 而是%u表示输出无符号数。当后续对应参数不是unsigned类型时,会先转为unsigned int后再输出。其形式上,也就是输出补码的对应无符号值。 追问 ,可为什么unsigned int b=2用u%输出还是2呢 追答 因为无符号数的补码,以及正数的补码,均是其本身(原码)只有负数的补码,才会与原码不同。