0
我有一个vector<int> table
和一个int index=-833099133
模运算时的操作数中的一个是负的值C++
当我写
cout<<table.size()<<endl;
cout<< index%table.size()<<endl;
它给我:
83
81
然而
如果我写
cout<<index%83<<endl;
输出证明:
-79
是否有任何人来帮助我,为什么它会发生?由于事先
'table.size()'是无符号的,'83'是一个'int',它被签名...然后整数提升,一些黑魔法,并且你得到了你的结果。 – 2014-01-25 20:03:09
@ H2CO3感谢您的回复,您可以将它写为答案我想接受它 – TheGost
@TheGhost完成。 – 2014-01-25 20:19:07