Предположим, что x и y имеют тип int.
Являются ли два выражения
int (4 * x / y) и
INT (х / (г / 4))
всегда оценивать одинаково для всех х и у типа int? Они должны быть математически, но только второе выражение является последовательным (т.е. выдает ожидаемое значение) в программе, которую я написал.
редактировать: это в C ++. Благодарю.
Во многих языках программирования 4*x/y
а также x/(y/4)
разные, потому что y/4
, целое число, является усеченным результатом деления y
от 4
, Нет такого усечения в 4*x/y
, По очевидной разнице в том, когда y
является 1
в этом случае второе выражение делится на ноль, тогда как первое вычисляет 4*x
,
я предполагаю, что х и у являются целыми
тогда конечно нет 🙂
на целые числа: х / 4 = этаж (х / 4) математически
который дает вам:
этаж (4 * х / у)
а также
пол (х / пол (у / 4))