相关疑难解决方法(0)

具有负值的模运算符

为什么这样的操作:

std::cout << (-7 % 3) << std::endl;
std::cout << (7 % -3) << std::endl;
Run Code Online (Sandbox Code Playgroud)

给出不同的结果?

-1
1
Run Code Online (Sandbox Code Playgroud)

c++

156
推荐指数
3
解决办法
13万
查看次数

无符号和有符号整数的比较运算

请参阅此代码段

int main()
{ 
 unsigned int a = 1000;
 int b = -1;
 if (a>b) printf("A is BIG! %d\n", a-b);
 else printf("a is SMALL! %d\n", a-b); 
 return 0;
}   
Run Code Online (Sandbox Code Playgroud)

这给出了输出:a是SMALL:1001

我不明白这里发生了什么.>运算符如何在这里工作?为什么"a"小于"b"?如果它确实更小,为什么我得到一个正数(1001)作为差异?

c unsigned signed gcc

40
推荐指数
2
解决办法
4万
查看次数

标签 统计

c ×1

c++ ×1

gcc ×1

signed ×1

unsigned ×1