Что лучше: -float(x) или float(-x), где x имеет тип unsigned short?
Ответ
Для unsigned short не имеет значения(при sizeof(short) < sizeof(int)), т.к. Ваше выражение float(-x) сначала приведёт x к int, сделает его отрицательным, а потом приведёт к float — никаких проблем.
Проблемы начнутся, если у вас тип unsigned int и «выше» — в этом случае вариант с float(-x) даст не то, что Вы ожидаете, т.к. сначала будет посчитан новый x исходя из формулы 2^n - x, а потом это будет преобразовано во float; где n это разрядность исходного типа(в нашем случае int).
Поэтому, во избежание проблем, лучше всегда придерживаться первого варианта(-float(x)), как наиболее безопасного и лучше отражающего намерение.
Комментариев нет:
Отправить комментарий