c语言中不同类型数据的比较问题
问一个弱弱的问题,c语言中不同类型数据是怎么比较的,例如:
signed int a;
unsigned int b;
if(a > b)
{}
(1). 是将其中一个自动转换成另一种类型然后比较吗?谁转换成谁,哪一个范围更大一点?
(2). 是变成a - b > 0, 然后同(1), 还是直接比较比特位,部分正负?
[解决办法]
有符号数会转化为无符号数。所以混用它们要格外小心。
[解决办法]
不同数据混合操作的时候,
会发生数据类型的隐式转换。
在你列举的例子中,
a 和 b 都被处理为 unsigned int 进行比较