An analytical technique for generating good binary pulse compression codes is developed. The first step in constructing a code of a given length <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">N</tex> is to divide all the residues modulo <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">N</tex> and less than <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">N</tex> into residue classes. A code digit <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">a(i)=\pm 1</tex> is assigned to all members, <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">i</tex> , of certain of these classes and <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">a(i)=-1</tex> to <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">N</tex> and all members, <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">i</tex> , of the remaining classes. Many of these divisions resulted in difference sets and corresponding binary codes with single-level periodic code correlations. Other divisions resulted in two-level periodic code correlations. In order for a binary pulse compression code to have low autocorrelation sidelobes, its periodic correlation sidelobes must be low. Therefore, codes with low periodic correlations were sought. Good binary codes for lengths just above <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">100</tex> digits down to lengths near <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">10</tex> digits were found. Several of them are known to be optimum codes. When programmed on an IBM <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">7094</tex> , this analytical technique produced codes for lengths near <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">100</tex> digits as good as, or better than, any previously known binary pulse compression codes in less than <tex xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">15</tex> minutes computer time.