int () { boolean found = false; int[] intdata = data; for (int i = intdata.length - 1; i >= 0; i--) { int block = intdata[i]; if (block != 0) { if (found) { return 2; } else { if ((block & (block - 1)) == 0) { found = true; } else { return 2; } } } } return found ? 1 : 0; }