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