嗨,我正在尝试构建一个循环来执行(C++)中8 4 2 1代码的16个状态
while( condition)
{
double Bubble[16], Bubble1[16];
Bubble[0] = ( a-2 - (b-2) ) + ( c-2 - (d-2)); // represents 0000
Bubble[1] = ( a-2 - (b-2) ) + ( c-2 - (d+2)); // represents 0001
Bubble[2] = ( a-2 - (b-2) ) + ( c+2 - (d-2)); // represents 0010
Bubble[3] = ( a-2 - (b-2) ) + ( c+2 - (d+2)); //represents 0011
.......
Bubble[15] =(a+2 - (b+2) ) + ( c+2 - (d+2)); //represents 1111
}
Run Code Online (Sandbox Code Playgroud)
有没有一种使用for循环编码的简单方法?而不是每次都写泡泡[]?
0代表-2,1代表+2.所以我有4个变量,每个变量需要递增和/或递减.可以使用for循环完成吗?
感谢您的帮助
我不完全确定您的代码在做什么,但您可以按如下方式重写它:
for (int i = 0; i < 16; i++) {
double a_value = (i & 0x8) ? a+2 : a-2;
double b_value = (i & 0x4) ? b+2 : b-2;
double c_value = (i & 0x2) ? c+2 : c-2;
double d_value = (i & 0x1) ? d+2 : d-2;
Bubble[i] = (a_value - b_value) + (c_value - d_value);
}
Run Code Online (Sandbox Code Playgroud)