This paper describes how 2-adic numbers can be used to analyze the str
ucture of binary cyclic codes and of cyclic codes defined over Z(2a),
a greater than or equal to 2, the ring of integers module 2(a). It pro
vides a 2-adic proof of a theorem of McEliece that characterizes the p
ossible Hamming weights that can appear in a binary cyclic code, A gen
eralization of this theorem is derived that applies to cyclic codes ov
er Z(2a) that are obtained from binary cyclic codes by a sequence of H
ensel lifts, This generalization characterizes the number of times a r
esidue module 2(a) appears as a component of an arbitrary codeword in
the cyclic code. The limit of the sequence of Hensel lifts is a univer
sal code defined over the 2-adic integers. This code was first introdu
ced by Calderbank and Sloane (1995), and is the main subject of this p
aper. Binary cyclic codes and cyclic codes over Z(2a) are obtained fro
m these universal codes by reduction module some power of 2. A special
case of particular interest is cyclic codes over Z(4) that are obtain
ed from binary cyclic codes by means of a single Hensel lift. The bina
ry images of such codes under the Gray isometry include the Kerdock, P
reparata, and Delsarte-Goethals codes, These are nonlinear binary code
s that contain more codewords than any linear code presently known, Fu
ndamental understanding of the composition of codewords in cyclic code
s over Z(4) is central to the search for more families of optimal code
s, This paper also constructs even unimodular lattices from the Hensel
lift of extended binary cyclic codes that are self-dual with all Hamm
ing weights divisible by 4, The Leech lattice arises in this way as do
extremal lattices in dimensions 32 through 48.