我正在开发一个自制的棋盘游戏(当然是电脑棋盘游戏)。作为游戏的一部分,我对棋盘上的每个单位都有一个力量值。这些单元中的一个是特殊的,具有几乎无限的功率。我想用整数最大值来表示它(强度是一个整数变量)。
我的问题是,这个值被比较了很多(很多!),所以我发现自己在问,int max val是否比值100更差(与其他单位相比,这也转换为无限)。
换句话说,这段代码可以:
this->_strength == other->_strength;受_strength值的影响(就速度而言)(在完全编译器、操作系统和硬件特定优化下)。
另外,这更多的是一个关于整数优化的理论问题,而不是一个关于我的游戏的实际问题,这就是为什么我没有费心去了解它的细节。
发布于 2011-04-23 14:48:27
只要你坚持使用最大值,就不会。在几乎所有可能使用的硬件体系结构上进行整数比较,将在整个字上以逐位并行的方式执行该比较,并执行一条指令。
现在,如果您碰巧在COBOL中使用了像COMP-3这样的压缩十进制表示,它可以。
发布于 2011-04-23 14:48:16
不是的。对两个相同类型的整数进行速度比较的唯一因素是它们在内存中的大小与处理器的字长(换句话说,处理器如何加载整数来进行比较)。整数的实际值绝对不会影响比较的速度。
发布于 2011-04-23 14:48:40
每个int变量占用相同数量的内存(在32位机器中通常为32位)。它内部的实际值实际上对分配给它的比特数没有影响。因此,值为0的int与值为2^31-1的int具有相同的效果。
https://stackoverflow.com/questions/5762704
复制相似问题