对于int a, b
,我知道当a
和b
中只有一个是负数时,a/b
和a % b
的结果是机器相关的。但是当b
不为零时,我总是有(a/b * b) + a % b == a
吗?当b不是零时,我总是有`(a/b * b)+ a%b == a`吗?
回答
C++ 11§5.6[expr.mul/4规定了:
如果商
a/b
是结果的类型表示的,(a/b)*b + a%b
等于a
。
C11§6.5.5/ 6指定具有稍微不同的措辞是相同的:
如果商
a/b
可表示,表达(a/b)*b + a%b
应等于a
;否则,a/b
和a%b
的行为未定义。
请注意,“如果商是可表示的”子句是必不可少的。例如,如果'a == INT_MIN'和'b == - 1',等于false(并且行为是未定义的)。 –
@R .. - 对于二进制补码表示而言,这是正确的,但对符号幅度不适用。不确定补码。这三个都是C和C++的有效整数表示。 –
对不起,我的意思是一般都是错误的,因为二进制补码是一种可能性。这在实践中也是错误的,因为补充和签署/量级实现不存在。 –
- 1. 对于非零'b',表达式“(a/b)* b + a%b - a”的表达式总是为零吗?
- 2. 比赛[A](B)但不是![A](B)
- 3. 测试非整数是否在范围[a,b) - 或[a,b],(a,b),(a,b)
- 4. 什么是A&B代表.Aggregate((a,b)=>声明w/a&b)
- 5. a,b = b,a + b和a = b,b = a + b在fibonacci中的区别是什么[Python]
- 6. 如果不是(a而不是b),如果(不是a和b)
- 7. 从{a-b,b-c,c-a}改变为{(a,b),(b,c),(c,a)}?
- 8. Javascript不是(a == b)||不(c == b)
- 9. A→B,B→A类协会
- 10. GROUP BY(A,B)和(B,A)
- 11. (A && B)与(A和B)
- 12. 通过“b =(a + b) - (a = b)”进行交换是否安全?
- 13. 逻辑:是(A &&!(B || C))|| (B || C)与(A || B || C)相同?
- 14. a + = b和a = + b之间的区别是什么,a ++和++ a?
- 15. 壳牌:如果a小于b,“a -lt b”是不是真的?
- 16. 当B类从A类继承时,它是否必须是“B类是 - A类”?
- 17. Python:是a,b = 1,2和a = 1; b = 2严格等价吗?
- 18. 是{A-> B,B-> A}本身的最小封面吗?
- 19. PHP变换阵列'a','b','c'到'a/b/c','a/b','a'
- 20. A == B对B == A,有什么区别
- 21. 当B不是NaN时A和B之间的差异
- 22. a + b如何不等于b + a?
- 23. SqlAlchemy如何查询列A == a和B == b和A == b和B == a
- 24. 如果A和B是单子,如何将A [B [C]]转换为B [A [C]]?
- 25. 为什么a.compareTo(b)等于compareTo(a,b)或a.method(b)= method(a,b)?
- 26. 类型参数(F:((A,B))⇒B)(隐式CMP:订货[B]):(A,B)
- 27. jQuery,验证A或B,但不是A和B
- 28. 为什么fold会预期(a - > b - > a)而不是(b - > a - > a)?
- 29. 函数f(a b)= b(a)有一个共同的名字吗?
- 30. 用a * pow(b,N)替换a * b ** N
什么意思是“总有”,什么类型是a和b –
事实上,如果类型是无符号类型,当“b”非零时相等总是成立。 –