下列通用算法可以为任意位数字产生一个可以纠错一位的汉明码:1.从1开始给数字的数据位(从左向右)标上序号, 1,2,3,4,5...2.将这些数据位的位置序号转换为二进制,1, 10, 11, 100, 101,等。3.数据位的位置序号中所有为二的幂次方的位(编号1,2,4,8,等,即数据位位置序号的二进制表示中只有一个1)是校验位4.所有其它位置的数据位(数据位位置序号的二进制表示中至少2个是1)是数据位5.每一位的数据包含在特定的两个或两个以上的校验位中,这些校验位取决于这些数据位的位置数值的二进制表示(1) 校验位1覆盖了所有数据位位置序号的二进制表示倒数第一位是1的数据:1(校验位自身,这里都是二进制,下同),11,101,111,1001,等(2) 校验位2覆盖了所有数据位位置序号的二进制表示倒数第二位是1的数据:10(校验位自身),11,110,111,1010,1011,等(3) 校验位4覆盖了所有数据位位置序号的二进制表示倒数第三位是1的数据:100(校验位自身),101,110,111,1100,1101,1110,1111,等(4) 校验位8覆盖了所有数据位位置序号的二进制表示倒数第四位是1的数据:1000(校验位自身),1001,1010,1011,1100,1101,1110,1111,等(5) 简而言之,所有校验位覆盖了数据位置和该校验位位置的二进制与的值不为0的数。