Предположим, что a
и b
имеют тип int
, а b
не равен нулю. Рассмотрим результат выполнения a/b
в следующих случаях:
a
и b
оба неотрицательны.
a
и b
оба являются отрицательными.
- Ровно один из них отрицательный.
В случае 1 результат округляется до ближайшего целого числа. Но что стандарт говорит о случаях 2 и 3? Старый черновик, который я обнаружил плавающим в Интернете, указывает на то, что он зависит от реализации (да, даже для случая 2), но комитет склоняется к тому, чтобы сделать его всегда «округленным к нулю». Кто-нибудь знает, что говорит (последний) стандарт? Пожалуйста, отвечайте только на основе стандарта, а не на то, что имеет смысл, или на то, что делают конкретные компиляторы.