如何在GLSL 1.3和OpenGL 2.1中使用位操作

uxh89sit  于 2023-01-30  发布在  其他
关注(0)|答案(3)|浏览(133)

我正在尝试写一个使用很多位操作的着色器。事实上,从glsl 1.30开始就支持这些操作,但我只使用OpenGL 2.1。
有什么方法可以在我的OpenGL版本中使用位操作吗?

gv8xihay

gv8xihay1#

所有SM 3兼容(~OpenGL 2.1)的硬件都支持 * 有限 * 的整数功能。这通常是通过用浮点模拟整数来实现的,并且 * 不 * 包括位操作。
对于位运算,需要GLSL 1.3或EXT_gpu_shader4
如果您只有OpenGL 2.1的原因是您的驱动程序有些过时,那么您可能很幸运仍然有EXT_gpu_shader4(在这种情况下,更新驱动程序可能是一个好主意)。
如果原因是你的显卡根本不支持更好的东西,你就倒霉了。
如果确实具有EXT_gpu_shader4(检查扩展字符串),则可以添加:

#extension EXT_gpu_shader4 : require

到GLSL 1.2着色器,应该可以工作。

nhaq1z21

nhaq1z212#

这应该能帮你入门。

lowp ivec4 imod4_2(lowp ivec4 x)
{
  return x - (2 * (x/2));
}

lowp ivec4 parselowbits(lowp int x)
{
  // Implement (x % y) where y is known to be the constant 2
  // by first dividing x by (8, 4, 2, 1) and then doing a mod
  // by (2, 2, 2, 2) to generate an int vector.

  lowp ivec4 numerator = ivec4(x);
  lowp ivec4 denominator = ivec4(8, 4, 2, 1);
  lowp ivec4 modNumerator = numerator / denominator;
  lowp ivec4 modResult = imod4_2(modNumerator);

  return modResult;
}

lowp ivec4 parsehighbits(lowp int x)
{
  // Implement (x % y) where y is known to be the constant 2
  // by first dividing by (8*16, 4*16, 2*16, 1*16) and then doing a mod
  // by (2, 2, 2, 2) to generate an int vector.

  lowp ivec4 numerator = ivec4(x);
  lowp ivec4 denominator = ivec4(8*16, 4*16, 2*16, 1*16);
  lowp ivec4 modNumerator = numerator / denominator;
  lowp ivec4 modResult = imod4_2(modNumerator);

  return modResult;
}

上述函数作用于输入向量的.r .g等分量的高半字节和低半字节(4位)。当然,您需要读入值并乘以255以进行反规格化。然后,实现AND就很容易了:

lowp ivec4 and4(lowp ivec4 a, lowp ivec4 b)
{
 lowp ivec4 a_and_b = a * b;
 return a_and_b;
}
yyhrrdl8

yyhrrdl83#

如果你想要按位与(A & B) == B,这里有一个非常愚蠢的解决方案(最大值为255):

bool bitMaskCheck(float value, float check){
    return (check == 1.0 &&
            (value == 1.0 ||
             value == 3.0 ||
             value == 5.0 ||
             value == 7.0 ||
             value == 9.0 ||
             value == 11.0 ||
             value == 13.0 ||
             value == 15.0 ||
             value == 17.0 ||
             value == 19.0 ||
             value == 21.0 ||
             value == 23.0 ||
             value == 25.0 ||
             value == 27.0 ||
             value == 29.0 ||
             value == 31.0 ||
             value == 33.0 ||
             value == 35.0 ||
             value == 37.0 ||
             value == 39.0 ||
             value == 41.0 ||
             value == 43.0 ||
             value == 45.0 ||
             value == 47.0 ||
             value == 49.0 ||
             value == 51.0 ||
             value == 53.0 ||
             value == 55.0 ||
             value == 57.0 ||
             value == 59.0 ||
             value == 61.0 ||
             value == 63.0 ||
             value == 65.0 ||
             value == 67.0 ||
             value == 69.0 ||
             value == 71.0 ||
             value == 73.0 ||
             value == 75.0 ||
             value == 77.0 ||
             value == 79.0 ||
             value == 81.0 ||
             value == 83.0 ||
             value == 85.0 ||
             value == 87.0 ||
             value == 89.0 ||
             value == 91.0 ||
             value == 93.0 ||
             value == 95.0 ||
             value == 97.0 ||
             value == 99.0 ||
             value == 101.0 ||
             value == 103.0 ||
             value == 105.0 ||
             value == 107.0 ||
             value == 109.0 ||
             value == 111.0 ||
             value == 113.0 ||
             value == 115.0 ||
             value == 117.0 ||
             value == 119.0 ||
             value == 121.0 ||
             value == 123.0 ||
             value == 125.0 ||
             value == 127.0 ||
             value == 129.0 ||
             value == 131.0 ||
             value == 133.0 ||
             value == 135.0 ||
             value == 137.0 ||
             value == 139.0 ||
             value == 141.0 ||
             value == 143.0 ||
             value == 145.0 ||
             value == 147.0 ||
             value == 149.0 ||
             value == 151.0 ||
             value == 153.0 ||
             value == 155.0 ||
             value == 157.0 ||
             value == 159.0 ||
             value == 161.0 ||
             value == 163.0 ||
             value == 165.0 ||
             value == 167.0 ||
             value == 169.0 ||
             value == 171.0 ||
             value == 173.0 ||
             value == 175.0 ||
             value == 177.0 ||
             value == 179.0 ||
             value == 181.0 ||
             value == 183.0 ||
             value == 185.0 ||
             value == 187.0 ||
             value == 189.0 ||
             value == 191.0 ||
             value == 193.0 ||
             value == 195.0 ||
             value == 197.0 ||
             value == 199.0 ||
             value == 201.0 ||
             value == 203.0 ||
             value == 205.0 ||
             value == 207.0 ||
             value == 209.0 ||
             value == 211.0 ||
             value == 213.0 ||
             value == 215.0 ||
             value == 217.0 ||
             value == 219.0 ||
             value == 221.0 ||
             value == 223.0 ||
             value == 225.0 ||
             value == 227.0 ||
             value == 229.0 ||
             value == 231.0 ||
             value == 233.0 ||
             value == 235.0 ||
             value == 237.0 ||
             value == 239.0 ||
             value == 241.0 ||
             value == 243.0 ||
             value == 245.0 ||
             value == 247.0 ||
             value == 249.0 ||
             value == 251.0 ||
             value == 253.0 ||
             value == 255.0)) ||
           (check == 2.0 &&
            (value == 2.0 ||
             value == 3.0 ||
             value == 6.0 ||
             value == 7.0 ||
             value == 10.0 ||
             value == 11.0 ||
             value == 14.0 ||
             value == 15.0 ||
             value == 18.0 ||
             value == 19.0 ||
             value == 22.0 ||
             value == 23.0 ||
             value == 26.0 ||
             value == 27.0 ||
             value == 30.0 ||
             value == 31.0 ||
             value == 34.0 ||
             value == 35.0 ||
             value == 38.0 ||
             value == 39.0 ||
             value == 42.0 ||
             value == 43.0 ||
             value == 46.0 ||
             value == 47.0 ||
             value == 50.0 ||
             value == 51.0 ||
             value == 54.0 ||
             value == 55.0 ||
             value == 58.0 ||
             value == 59.0 ||
             value == 62.0 ||
             value == 63.0 ||
             value == 66.0 ||
             value == 67.0 ||
             value == 70.0 ||
             value == 71.0 ||
             value == 74.0 ||
             value == 75.0 ||
             value == 78.0 ||
             value == 79.0 ||
             value == 82.0 ||
             value == 83.0 ||
             value == 86.0 ||
             value == 87.0 ||
             value == 90.0 ||
             value == 91.0 ||
             value == 94.0 ||
             value == 95.0 ||
             value == 98.0 ||
             value == 99.0 ||
             value == 102.0 ||
             value == 103.0 ||
             value == 106.0 ||
             value == 107.0 ||
             value == 110.0 ||
             value == 111.0 ||
             value == 114.0 ||
             value == 115.0 ||
             value == 118.0 ||
             value == 119.0 ||
             value == 122.0 ||
             value == 123.0 ||
             value == 126.0 ||
             value == 127.0 ||
             value == 130.0 ||
             value == 131.0 ||
             value == 134.0 ||
             value == 135.0 ||
             value == 138.0 ||
             value == 139.0 ||
             value == 142.0 ||
             value == 143.0 ||
             value == 146.0 ||
             value == 147.0 ||
             value == 150.0 ||
             value == 151.0 ||
             value == 154.0 ||
             value == 155.0 ||
             value == 158.0 ||
             value == 159.0 ||
             value == 162.0 ||
             value == 163.0 ||
             value == 166.0 ||
             value == 167.0 ||
             value == 170.0 ||
             value == 171.0 ||
             value == 174.0 ||
             value == 175.0 ||
             value == 178.0 ||
             value == 179.0 ||
             value == 182.0 ||
             value == 183.0 ||
             value == 186.0 ||
             value == 187.0 ||
             value == 190.0 ||
             value == 191.0 ||
             value == 194.0 ||
             value == 195.0 ||
             value == 198.0 ||
             value == 199.0 ||
             value == 202.0 ||
             value == 203.0 ||
             value == 206.0 ||
             value == 207.0 ||
             value == 210.0 ||
             value == 211.0 ||
             value == 214.0 ||
             value == 215.0 ||
             value == 218.0 ||
             value == 219.0 ||
             value == 222.0 ||
             value == 223.0 ||
             value == 226.0 ||
             value == 227.0 ||
             value == 230.0 ||
             value == 231.0 ||
             value == 234.0 ||
             value == 235.0 ||
             value == 238.0 ||
             value == 239.0 ||
             value == 242.0 ||
             value == 243.0 ||
             value == 246.0 ||
             value == 247.0 ||
             value == 250.0 ||
             value == 251.0 ||
             value == 254.0 ||
             value == 255.0)) ||
           (check == 4.0 &&
            (value == 4.0 ||
             value == 5.0 ||
             value == 6.0 ||
             value == 7.0 ||
             value == 12.0 ||
             value == 13.0 ||
             value == 14.0 ||
             value == 15.0 ||
             value == 20.0 ||
             value == 21.0 ||
             value == 22.0 ||
             value == 23.0 ||
             value == 28.0 ||
             value == 29.0 ||
             value == 30.0 ||
             value == 31.0 ||
             value == 36.0 ||
             value == 37.0 ||
             value == 38.0 ||
             value == 39.0 ||
             value == 44.0 ||
             value == 45.0 ||
             value == 46.0 ||
             value == 47.0 ||
             value == 52.0 ||
             value == 53.0 ||
             value == 54.0 ||
             value == 55.0 ||
             value == 60.0 ||
             value == 61.0 ||
             value == 62.0 ||
             value == 63.0 ||
             value == 68.0 ||
             value == 69.0 ||
             value == 70.0 ||
             value == 71.0 ||
             value == 76.0 ||
             value == 77.0 ||
             value == 78.0 ||
             value == 79.0 ||
             value == 84.0 ||
             value == 85.0 ||
             value == 86.0 ||
             value == 87.0 ||
             value == 92.0 ||
             value == 93.0 ||
             value == 94.0 ||
             value == 95.0 ||
             value == 100.0 ||
             value == 101.0 ||
             value == 102.0 ||
             value == 103.0 ||
             value == 108.0 ||
             value == 109.0 ||
             value == 110.0 ||
             value == 111.0 ||
             value == 116.0 ||
             value == 117.0 ||
             value == 118.0 ||
             value == 119.0 ||
             value == 124.0 ||
             value == 125.0 ||
             value == 126.0 ||
             value == 127.0 ||
             value == 132.0 ||
             value == 133.0 ||
             value == 134.0 ||
             value == 135.0 ||
             value == 140.0 ||
             value == 141.0 ||
             value == 142.0 ||
             value == 143.0 ||
             value == 148.0 ||
             value == 149.0 ||
             value == 150.0 ||
             value == 151.0 ||
             value == 156.0 ||
             value == 157.0 ||
             value == 158.0 ||
             value == 159.0 ||
             value == 164.0 ||
             value == 165.0 ||
             value == 166.0 ||
             value == 167.0 ||
             value == 172.0 ||
             value == 173.0 ||
             value == 174.0 ||
             value == 175.0 ||
             value == 180.0 ||
             value == 181.0 ||
             value == 182.0 ||
             value == 183.0 ||
             value == 188.0 ||
             value == 189.0 ||
             value == 190.0 ||
             value == 191.0 ||
             value == 196.0 ||
             value == 197.0 ||
             value == 198.0 ||
             value == 199.0 ||
             value == 204.0 ||
             value == 205.0 ||
             value == 206.0 ||
             value == 207.0 ||
             value == 212.0 ||
             value == 213.0 ||
             value == 214.0 ||
             value == 215.0 ||
             value == 220.0 ||
             value == 221.0 ||
             value == 222.0 ||
             value == 223.0 ||
             value == 228.0 ||
             value == 229.0 ||
             value == 230.0 ||
             value == 231.0 ||
             value == 236.0 ||
             value == 237.0 ||
             value == 238.0 ||
             value == 239.0 ||
             value == 244.0 ||
             value == 245.0 ||
             value == 246.0 ||
             value == 247.0 ||
             value == 252.0 ||
             value == 253.0 ||
             value == 254.0 ||
             value == 255.0)) ||
           (check == 8.0 &&
            (value == 8.0 ||
             value == 9.0 ||
             value == 10.0 ||
             value == 11.0 ||
             value == 12.0 ||
             value == 13.0 ||
             value == 14.0 ||
             value == 15.0 ||
             value == 24.0 ||
             value == 25.0 ||
             value == 26.0 ||
             value == 27.0 ||
             value == 28.0 ||
             value == 29.0 ||
             value == 30.0 ||
             value == 31.0 ||
             value == 40.0 ||
             value == 41.0 ||
             value == 42.0 ||
             value == 43.0 ||
             value == 44.0 ||
             value == 45.0 ||
             value == 46.0 ||
             value == 47.0 ||
             value == 56.0 ||
             value == 57.0 ||
             value == 58.0 ||
             value == 59.0 ||
             value == 60.0 ||
             value == 61.0 ||
             value == 62.0 ||
             value == 63.0 ||
             value == 72.0 ||
             value == 73.0 ||
             value == 74.0 ||
             value == 75.0 ||
             value == 76.0 ||
             value == 77.0 ||
             value == 78.0 ||
             value == 79.0 ||
             value == 88.0 ||
             value == 89.0 ||
             value == 90.0 ||
             value == 91.0 ||
             value == 92.0 ||
             value == 93.0 ||
             value == 94.0 ||
             value == 95.0 ||
             value == 104.0 ||
             value == 105.0 ||
             value == 106.0 ||
             value == 107.0 ||
             value == 108.0 ||
             value == 109.0 ||
             value == 110.0 ||
             value == 111.0 ||
             value == 120.0 ||
             value == 121.0 ||
             value == 122.0 ||
             value == 123.0 ||
             value == 124.0 ||
             value == 125.0 ||
             value == 126.0 ||
             value == 127.0 ||
             value == 136.0 ||
             value == 137.0 ||
             value == 138.0 ||
             value == 139.0 ||
             value == 140.0 ||
             value == 141.0 ||
             value == 142.0 ||
             value == 143.0 ||
             value == 152.0 ||
             value == 153.0 ||
             value == 154.0 ||
             value == 155.0 ||
             value == 156.0 ||
             value == 157.0 ||
             value == 158.0 ||
             value == 159.0 ||
             value == 168.0 ||
             value == 169.0 ||
             value == 170.0 ||
             value == 171.0 ||
             value == 172.0 ||
             value == 173.0 ||
             value == 174.0 ||
             value == 175.0 ||
             value == 184.0 ||
             value == 185.0 ||
             value == 186.0 ||
             value == 187.0 ||
             value == 188.0 ||
             value == 189.0 ||
             value == 190.0 ||
             value == 191.0 ||
             value == 200.0 ||
             value == 201.0 ||
             value == 202.0 ||
             value == 203.0 ||
             value == 204.0 ||
             value == 205.0 ||
             value == 206.0 ||
             value == 207.0 ||
             value == 216.0 ||
             value == 217.0 ||
             value == 218.0 ||
             value == 219.0 ||
             value == 220.0 ||
             value == 221.0 ||
             value == 222.0 ||
             value == 223.0 ||
             value == 232.0 ||
             value == 233.0 ||
             value == 234.0 ||
             value == 235.0 ||
             value == 236.0 ||
             value == 237.0 ||
             value == 238.0 ||
             value == 239.0 ||
             value == 248.0 ||
             value == 249.0 ||
             value == 250.0 ||
             value == 251.0 ||
             value == 252.0 ||
             value == 253.0 ||
             value == 254.0 ||
             value == 255.0)) ||
           (check == 16.0 &&
            (value == 16.0 ||
             value == 17.0 ||
             value == 18.0 ||
             value == 19.0 ||
             value == 20.0 ||
             value == 21.0 ||
             value == 22.0 ||
             value == 23.0 ||
             value == 24.0 ||
             value == 25.0 ||
             value == 26.0 ||
             value == 27.0 ||
             value == 28.0 ||
             value == 29.0 ||
             value == 30.0 ||
             value == 31.0 ||
             value == 48.0 ||
             value == 49.0 ||
             value == 50.0 ||
             value == 51.0 ||
             value == 52.0 ||
             value == 53.0 ||
             value == 54.0 ||
             value == 55.0 ||
             value == 56.0 ||
             value == 57.0 ||
             value == 58.0 ||
             value == 59.0 ||
             value == 60.0 ||
             value == 61.0 ||
             value == 62.0 ||
             value == 63.0 ||
             value == 80.0 ||
             value == 81.0 ||
             value == 82.0 ||
             value == 83.0 ||
             value == 84.0 ||
             value == 85.0 ||
             value == 86.0 ||
             value == 87.0 ||
             value == 88.0 ||
             value == 89.0 ||
             value == 90.0 ||
             value == 91.0 ||
             value == 92.0 ||
             value == 93.0 ||
             value == 94.0 ||
             value == 95.0 ||
             value == 112.0 ||
             value == 113.0 ||
             value == 114.0 ||
             value == 115.0 ||
             value == 116.0 ||
             value == 117.0 ||
             value == 118.0 ||
             value == 119.0 ||
             value == 120.0 ||
             value == 121.0 ||
             value == 122.0 ||
             value == 123.0 ||
             value == 124.0 ||
             value == 125.0 ||
             value == 126.0 ||
             value == 127.0 ||
             value == 144.0 ||
             value == 145.0 ||
             value == 146.0 ||
             value == 147.0 ||
             value == 148.0 ||
             value == 149.0 ||
             value == 150.0 ||
             value == 151.0 ||
             value == 152.0 ||
             value == 153.0 ||
             value == 154.0 ||
             value == 155.0 ||
             value == 156.0 ||
             value == 157.0 ||
             value == 158.0 ||
             value == 159.0 ||
             value == 176.0 ||
             value == 177.0 ||
             value == 178.0 ||
             value == 179.0 ||
             value == 180.0 ||
             value == 181.0 ||
             value == 182.0 ||
             value == 183.0 ||
             value == 184.0 ||
             value == 185.0 ||
             value == 186.0 ||
             value == 187.0 ||
             value == 188.0 ||
             value == 189.0 ||
             value == 190.0 ||
             value == 191.0 ||
             value == 208.0 ||
             value == 209.0 ||
             value == 210.0 ||
             value == 211.0 ||
             value == 212.0 ||
             value == 213.0 ||
             value == 214.0 ||
             value == 215.0 ||
             value == 216.0 ||
             value == 217.0 ||
             value == 218.0 ||
             value == 219.0 ||
             value == 220.0 ||
             value == 221.0 ||
             value == 222.0 ||
             value == 223.0 ||
             value == 240.0 ||
             value == 241.0 ||
             value == 242.0 ||
             value == 243.0 ||
             value == 244.0 ||
             value == 245.0 ||
             value == 246.0 ||
             value == 247.0 ||
             value == 248.0 ||
             value == 249.0 ||
             value == 250.0 ||
             value == 251.0 ||
             value == 252.0 ||
             value == 253.0 ||
             value == 254.0 ||
             value == 255.0)) ||
           (check == 32.0 &&
            (value == 32.0 ||
             value == 33.0 ||
             value == 34.0 ||
             value == 35.0 ||
             value == 36.0 ||
             value == 37.0 ||
             value == 38.0 ||
             value == 39.0 ||
             value == 40.0 ||
             value == 41.0 ||
             value == 42.0 ||
             value == 43.0 ||
             value == 44.0 ||
             value == 45.0 ||
             value == 46.0 ||
             value == 47.0 ||
             value == 48.0 ||
             value == 49.0 ||
             value == 50.0 ||
             value == 51.0 ||
             value == 52.0 ||
             value == 53.0 ||
             value == 54.0 ||
             value == 55.0 ||
             value == 56.0 ||
             value == 57.0 ||
             value == 58.0 ||
             value == 59.0 ||
             value == 60.0 ||
             value == 61.0 ||
             value == 62.0 ||
             value == 63.0 ||
             value == 96.0 ||
             value == 97.0 ||
             value == 98.0 ||
             value == 99.0 ||
             value == 100.0 ||
             value == 101.0 ||
             value == 102.0 ||
             value == 103.0 ||
             value == 104.0 ||
             value == 105.0 ||
             value == 106.0 ||
             value == 107.0 ||
             value == 108.0 ||
             value == 109.0 ||
             value == 110.0 ||
             value == 111.0 ||
             value == 112.0 ||
             value == 113.0 ||
             value == 114.0 ||
             value == 115.0 ||
             value == 116.0 ||
             value == 117.0 ||
             value == 118.0 ||
             value == 119.0 ||
             value == 120.0 ||
             value == 121.0 ||
             value == 122.0 ||
             value == 123.0 ||
             value == 124.0 ||
             value == 125.0 ||
             value == 126.0 ||
             value == 127.0 ||
             value == 160.0 ||
             value == 161.0 ||
             value == 162.0 ||
             value == 163.0 ||
             value == 164.0 ||
             value == 165.0 ||
             value == 166.0 ||
             value == 167.0 ||
             value == 168.0 ||
             value == 169.0 ||
             value == 170.0 ||
             value == 171.0 ||
             value == 172.0 ||
             value == 173.0 ||
             value == 174.0 ||
             value == 175.0 ||
             value == 176.0 ||
             value == 177.0 ||
             value == 178.0 ||
             value == 179.0 ||
             value == 180.0 ||
             value == 181.0 ||
             value == 182.0 ||
             value == 183.0 ||
             value == 184.0 ||
             value == 185.0 ||
             value == 186.0 ||
             value == 187.0 ||
             value == 188.0 ||
             value == 189.0 ||
             value == 190.0 ||
             value == 191.0 ||
             value == 224.0 ||
             value == 225.0 ||
             value == 226.0 ||
             value == 227.0 ||
             value == 228.0 ||
             value == 229.0 ||
             value == 230.0 ||
             value == 231.0 ||
             value == 232.0 ||
             value == 233.0 ||
             value == 234.0 ||
             value == 235.0 ||
             value == 236.0 ||
             value == 237.0 ||
             value == 238.0 ||
             value == 239.0 ||
             value == 240.0 ||
             value == 241.0 ||
             value == 242.0 ||
             value == 243.0 ||
             value == 244.0 ||
             value == 245.0 ||
             value == 246.0 ||
             value == 247.0 ||
             value == 248.0 ||
             value == 249.0 ||
             value == 250.0 ||
             value == 251.0 ||
             value == 252.0 ||
             value == 253.0 ||
             value == 254.0 ||
             value == 255.0)) ||
           (check == 64.0 &&
            (value == 64.0 ||
             value == 65.0 ||
             value == 66.0 ||
             value == 67.0 ||
             value == 68.0 ||
             value == 69.0 ||
             value == 70.0 ||
             value == 71.0 ||
             value == 72.0 ||
             value == 73.0 ||
             value == 74.0 ||
             value == 75.0 ||
             value == 76.0 ||
             value == 77.0 ||
             value == 78.0 ||
             value == 79.0 ||
             value == 80.0 ||
             value == 81.0 ||
             value == 82.0 ||
             value == 83.0 ||
             value == 84.0 ||
             value == 85.0 ||
             value == 86.0 ||
             value == 87.0 ||
             value == 88.0 ||
             value == 89.0 ||
             value == 90.0 ||
             value == 91.0 ||
             value == 92.0 ||
             value == 93.0 ||
             value == 94.0 ||
             value == 95.0 ||
             value == 96.0 ||
             value == 97.0 ||
             value == 98.0 ||
             value == 99.0 ||
             value == 100.0 ||
             value == 101.0 ||
             value == 102.0 ||
             value == 103.0 ||
             value == 104.0 ||
             value == 105.0 ||
             value == 106.0 ||
             value == 107.0 ||
             value == 108.0 ||
             value == 109.0 ||
             value == 110.0 ||
             value == 111.0 ||
             value == 112.0 ||
             value == 113.0 ||
             value == 114.0 ||
             value == 115.0 ||
             value == 116.0 ||
             value == 117.0 ||
             value == 118.0 ||
             value == 119.0 ||
             value == 120.0 ||
             value == 121.0 ||
             value == 122.0 ||
             value == 123.0 ||
             value == 124.0 ||
             value == 125.0 ||
             value == 126.0 ||
             value == 127.0 ||
             value == 192.0 ||
             value == 193.0 ||
             value == 194.0 ||
             value == 195.0 ||
             value == 196.0 ||
             value == 197.0 ||
             value == 198.0 ||
             value == 199.0 ||
             value == 200.0 ||
             value == 201.0 ||
             value == 202.0 ||
             value == 203.0 ||
             value == 204.0 ||
             value == 205.0 ||
             value == 206.0 ||
             value == 207.0 ||
             value == 208.0 ||
             value == 209.0 ||
             value == 210.0 ||
             value == 211.0 ||
             value == 212.0 ||
             value == 213.0 ||
             value == 214.0 ||
             value == 215.0 ||
             value == 216.0 ||
             value == 217.0 ||
             value == 218.0 ||
             value == 219.0 ||
             value == 220.0 ||
             value == 221.0 ||
             value == 222.0 ||
             value == 223.0 ||
             value == 224.0 ||
             value == 225.0 ||
             value == 226.0 ||
             value == 227.0 ||
             value == 228.0 ||
             value == 229.0 ||
             value == 230.0 ||
             value == 231.0 ||
             value == 232.0 ||
             value == 233.0 ||
             value == 234.0 ||
             value == 235.0 ||
             value == 236.0 ||
             value == 237.0 ||
             value == 238.0 ||
             value == 239.0 ||
             value == 240.0 ||
             value == 241.0 ||
             value == 242.0 ||
             value == 243.0 ||
             value == 244.0 ||
             value == 245.0 ||
             value == 246.0 ||
             value == 247.0 ||
             value == 248.0 ||
             value == 249.0 ||
             value == 250.0 ||
             value == 251.0 ||
             value == 252.0 ||
             value == 253.0 ||
             value == 254.0 ||
             value == 255.0)) ||
           (check == 128.0 &&
            (value == 128.0 ||
             value == 129.0 ||
             value == 130.0 ||
             value == 131.0 ||
             value == 132.0 ||
             value == 133.0 ||
             value == 134.0 ||
             value == 135.0 ||
             value == 136.0 ||
             value == 137.0 ||
             value == 138.0 ||
             value == 139.0 ||
             value == 140.0 ||
             value == 141.0 ||
             value == 142.0 ||
             value == 143.0 ||
             value == 144.0 ||
             value == 145.0 ||
             value == 146.0 ||
             value == 147.0 ||
             value == 148.0 ||
             value == 149.0 ||
             value == 150.0 ||
             value == 151.0 ||
             value == 152.0 ||
             value == 153.0 ||
             value == 154.0 ||
             value == 155.0 ||
             value == 156.0 ||
             value == 157.0 ||
             value == 158.0 ||
             value == 159.0 ||
             value == 160.0 ||
             value == 161.0 ||
             value == 162.0 ||
             value == 163.0 ||
             value == 164.0 ||
             value == 165.0 ||
             value == 166.0 ||
             value == 167.0 ||
             value == 168.0 ||
             value == 169.0 ||
             value == 170.0 ||
             value == 171.0 ||
             value == 172.0 ||
             value == 173.0 ||
             value == 174.0 ||
             value == 175.0 ||
             value == 176.0 ||
             value == 177.0 ||
             value == 178.0 ||
             value == 179.0 ||
             value == 180.0 ||
             value == 181.0 ||
             value == 182.0 ||
             value == 183.0 ||
             value == 184.0 ||
             value == 185.0 ||
             value == 186.0 ||
             value == 187.0 ||
             value == 188.0 ||
             value == 189.0 ||
             value == 190.0 ||
             value == 191.0 ||
             value == 192.0 ||
             value == 193.0 ||
             value == 194.0 ||
             value == 195.0 ||
             value == 196.0 ||
             value == 197.0 ||
             value == 198.0 ||
             value == 199.0 ||
             value == 200.0 ||
             value == 201.0 ||
             value == 202.0 ||
             value == 203.0 ||
             value == 204.0 ||
             value == 205.0 ||
             value == 206.0 ||
             value == 207.0 ||
             value == 208.0 ||
             value == 209.0 ||
             value == 210.0 ||
             value == 211.0 ||
             value == 212.0 ||
             value == 213.0 ||
             value == 214.0 ||
             value == 215.0 ||
             value == 216.0 ||
             value == 217.0 ||
             value == 218.0 ||
             value == 219.0 ||
             value == 220.0 ||
             value == 221.0 ||
             value == 222.0 ||
             value == 223.0 ||
             value == 224.0 ||
             value == 225.0 ||
             value == 226.0 ||
             value == 227.0 ||
             value == 228.0 ||
             value == 229.0 ||
             value == 230.0 ||
             value == 231.0 ||
             value == 232.0 ||
             value == 233.0 ||
             value == 234.0 ||
             value == 235.0 ||
             value == 236.0 ||
             value == 237.0 ||
             value == 238.0 ||
             value == 239.0 ||
             value == 240.0 ||
             value == 241.0 ||
             value == 242.0 ||
             value == 243.0 ||
             value == 244.0 ||
             value == 245.0 ||
             value == 246.0 ||
             value == 247.0 ||
             value == 248.0 ||
             value == 249.0 ||
             value == 250.0 ||
             value == 251.0 ||
             value == 252.0 ||
             value == 253.0 ||
             value == 254.0 ||
             value == 255.0));
}
// Usage

// 0b10000
#define MY_BITWISE 16

// 0b10101
float someValue = 21;

if(bitMaskCheck(someValue, MY_BITWISE)){
  // some logic here
}

// This is the same as (someValue & MY_BITWISE) == MY_BITWISE

相关问题