问题记录:无符号数据类型,加减运算仍然是无符号

A:我开始设的unsigned char m=5; -请问m-6>等于多少?

Q:在这种情况下,无符号字符 m 的值为 5。当计算 m-6 时,由于 m 是无符号字符,所以 5-6 将被解释为模运算。因此,5-6 等于 255(即 UINT_MAXunsigned char 类型的最大值加1)。

检查这个问题花了我半小时,我服了:

我还以为是keil出问题了,痛苦。。。。C语言忘完了

总结:对于无符号数据类型,加减运算仍然是无符号的。在无符号数据类型中,数学运算通常被定义为模运算,这意味着结果会回绕到 0 或最大值。因此,在无符号数据类型中,加减运算将按照模运算的规则进行。

posted @ 2024-02-23 00:49  iZJ"Qq4577105  阅读(3)  评论(0编辑  收藏  举报