  In this paper, we focus on the design of binary constant-weight codes that
admit low-complexity encoding and decoding algorithms, and that have size as a
power of $2$. We construct a family of $(n=2^\ell, M=2^k, d=2)$ constant-weight
codes ${\cal C}[\ell, r]$ parameterized by integers $\ell \geq 3$ and $1 \leq r
\leq \lfloor \frac{\ell+3}{4} \rfloor$, by encoding information in the gaps
between successive $1$'s of a vector. The code has weight $w = \ell$ and
combinatorial dimension $k$ that scales quadratically with $\ell$. The encoding
time is linear in the input size $k$, and the decoding time is poly-logarithmic
in the input size $n$, discounting the linear time spent on parsing the input.
Encoding and decoding algorithms of similar codes known in either
information-theoretic or combinatorial literature require computation of large
number of binomial coefficients. Our algorithms fully eliminate the need to
evaluate binomial coefficients. While the code has a natural price to pay in
$k$, it performs fairly well against the information-theoretic upper bound
$\lfloor \log_2 {n \choose w} \rfloor$. When $\ell =3$, the code is optimal
achieving the upper bound; when $\ell=4$, it is one bit away from the upper
bound, and as $\ell$ grows it is order-optimal in the sense that the ratio of
$k$ with its upper bound becomes a constant $\frac{11}{16}$ when $r=\lfloor
\frac{\ell+3}{4} \rfloor$. With the same or even lower complexity, we derive
new codes permitting a wider range of parameters by modifying ${\cal C}[\ell,
r]$ in two different ways. The code derived using the first approach has the
same blocklength $n=2^\ell$, but weight $w$ is allowed to vary from $\ell-1$ to
$1$. In the second approach, the weight remains fixed as $w = \ell$, but the
blocklength is reduced to $n=2^\ell - 2^r +1$. For certain selected values of
parameters, these modified codes have an optimal $k$.
