我有一个关于 Java 的速度问题。我正在制作一个国际象棋程序,我想检查使用一个 int
作为变量来存储四个 int
变量是否是个好主意,其中的值范围为1 到 4 位。
问题是我经常需要提取和放入变量的新部分,因此这将花费相当多的按位运算。
代码:
int fromX = 4, fromY = 5, toX = 6, toY = 7;
int move = 0
move |= toY;
move = move << 4;
move |= toX;
move = move << 4;
move |= fromY;
move = move << 4;
move |= fromX;
doWork(move);
或
int fromX = 4, fromY = 5, toX = 6, toY = 7;
doWork(fromX, fromY, toX, toY);
doWork()
将对坐标做很多不同的事情,主要是从“int”中提取它们,或者只使用变量。
我应该使用哪个?
最佳答案
I want to check if is a good idea to use one 'unsigned int' as a variable to store four 'int' variables
不,出于多种原因,这是一个坏主意™。
这会非常低效
很难阅读
(因此)很难调试
当然,它可能会在这里和那里节省几个字节,但老实说,这些天我以千兆字节购买我的 RAM 模块。
我的建议:
编写您的整个国际象棋程序。 如果您遇到性能问题,请剖析程序以查看瓶颈在哪里,然后采取措施解决这些问题。 (我可以向您保证,一旦达到这一点,您就不会开始将多个数字打包到 int
中。)
关于java - 速度 : four ints or one int with many operations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792016/