In software, find first set (ffs) or find first one is a bit operation that, given an unsigned machine word, identifies the least significant index or position of the bits set to one in the word. A nearly equivalent operation is count trailing zeros (ctz) or number of trailing zeros (ntz), which counts the number of zero bits following the least significant one bit. The complementary operation that finds the index or position of the most significant set bit is log base 2, so called because it computes the binary logarithm . This is closely related to count leading zeros (clz) or number of leading zeros (nlz), which counts the number of zero bits preceding the most significant one bit. These four operations also have negated versions:
- find first zero (ffz), which identifies the index of the least significant zero bit;
- count trailing ones, which counts the number of one bits following the least significant zero bit.
- count leading ones, which counts the number of one bits preceding the most significant zero bit;
- The operation that finds the index of the most significant zero bit, which does not have a common name.
There are two common variants of find first set, the POSIX definition which starts indexing of bits at 1, herein labelled ffs, and the variant which starts indexing of bits at zero, which is equivalent to ctz and so will be called by that name.
Read more about Find First Set: Examples, Hardware Support, Tool and Library Support, Properties and Relations, Algorithms, Applications
Famous quotes containing the words find and/or set:
“Mankind always sets itself only such tasks as it can solve; since, looking at the matter more closely, we will always find that the task itself arises only when the material conditions necessary for its solution already exist or are at least in the process of formation.”
—Karl Marx (18181883)
“The eyes that drew from me such fervent praise,
The arms and hands and feet and countenance
Which made me a stranger in my own romance
And set me apart from the well-trodden ways;”
—Petrarch (13041374)