无符号整型(U),有符号整型(T),以B表示二进制数,w表示有效位数。
B2U表示二进制数据转化成无符号整型。
B2T:表示二进制数据转化成有符号数据。
U2T:无符号数据转化成有符号数据。
T2U:有符号转化成无符号数据。
c语言在处理同时包含有符号和无符号的表达式时,会隐含的将有符号转化成无符号,并假设这两个数都是非负的来执行这个运算。这对于标准的算术运算并无差异,但对关系运算来说,它会导致与直觉不相符的结果。当一个有符号和无符号数据比较是会将有符号数据转化成无符号数据在比较大小。如c语言在判断表达式(-1<0U)时表达式不成立。使用T2U将-1转化为无符号数为Umax。所以c执行的结果是(-1>0U),这与实际不符合。