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