类型转换的问题,我不知道u+i会输出那么大的数,还有u2-u1,如下图
当一个算术表达式中既有无符号又有int值时,那个int值就会转换成无符号数;
在第一个输出表达式里,两个(负)整数相加并得到了期望的结果。在第二个输出表达式里,相加首先把整数-42转换成无符号数。把负数转换成无符号数类似于直接给无符号数赋一个负值,结果等于这个负数加上无符号数的模。
因为u是无符号的,u+i后还是无符号的,虽然10-42=-32,但-32在无符号下是个很大的数,因为最高位是1
u2-u1是一个道理,最终是无符号数,所以负值实际是个很大的无符号数