【发布时间】:2018-07-30 17:38:43
【问题描述】:
我会考虑以下 sn-p :
int a =-9;
int m = 10;
unsigned int m1 =10;
std::cout<<a%m<<std::endl;
std::cout<<a%m1<<std::endl;
结果是:
-9
7
7 太奇怪了。 谁能解释一下?
【问题讨论】:
-
如果是C题,我会指向usual arithmetic conversions
-
错误的副本,我相信。它更多的是关于签名/与未签名的操作......
-
@EugeneSh。看来你是对的,
-9因为 unsigned int 是4294967287 -
我同意,奇怪的是无符号模数也会将左操作数视为无符号数。