( egmont | 2008. 03. 02., v – 10:01 )

Na szóval az előző is túl bonyolult volt. Az 5807-es glibc hibabejelentés alapján íme Az Ultime Megoldás A Problémára:


int haszerobyte(unsigned32 x) {
  return ((x - 0x01010101) & (~x) & 0x80808080) != 0;
}

és 64 bitesre is hasonlóan, csak hosszabban folytatva a mintát a konstansokban.

Szóljon, aki talál ennél is egyszerűbbet. :-)

Megérteni, helyességét ellenőrizni mindenkinek legyen házi feladat. Nekem kábé 5 percbe tellett.