Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Как лучше привести к типу float?

#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 выглядит не очень красиво...

Комментариев нет:

Отправить комментарий