Предположим, что в моей программе был критический цикл, зависящий от производительности, когда мне нужно проверить, находилась ли точка внутри прямоугольника, но во время компиляции я знаю, что нижние границы всегда будут равны 0, например: (x >= 0 && y >= 0 && x < width && y < height)
Могу ли я исключить первые два сравнения путем ввода чисел типа x и y в беззнаковые целые числа (например, с чем-то вроде reinterpret_cast<>()
или union
в С++), поскольку бит знака гарантирует, что любое отрицательное число превратится в unsigned int
достаточно большой, чтобы не проверить границы? Если да, то как вы собираетесь реализовать это на С++ или на другом языке? Не могли бы вы добиться какого-либо улучшения производительности, выполнив это?