检查位还是使用布尔值?

时间:2012-05-17 09:11:49

标签: c++ optimization

我在二维平面(x,y)中得到一个点作为输入。现在我必须检查它所在的象限,做一些关于X轴和Y轴的反射,并再次检查它重复多少象限。

我有两种方法,但不确定哪种更好

  1. 我最初可以将x,y存储为布尔值,然后在反射时执行布尔操作,因此这很容易。要判断该点在哪个象限,只需检查该值是true还是false。
  2. 或者我可以使用int进行常规方法,然后检查第一位以找到该点所在的象限

1 个答案:

答案 0 :(得分:2)

两者都没有,只需将您的坐标与0进行比较。

如果将它们存储为布尔值,除了丢失信息外,由于转换,您可能会得到一些开销。

如果检查第一位,它的可读性会降低。

编译器会自行优化这些调用,怀疑你会从不同的方法中获得任何东西。