public class BinaryTest
{
private static int[] weight = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
private static int[] check = { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 };
public static void main(String[] args)
{
System.out.println(getVerifyCode("42108719881002761"));
}
public static String getVerifyCode(String idcard)
{
String result = null;
int sum = 0;
for (int i = 0; i < idcard.length(); i++)
{
sum += Integer.parseInt(idcard.substring(i, i + 1)) * weight[i];
}
result = (sum % 11) == 2 ? "X" : String.valueOf(check[sum % 11]);
return result;
}
}
分享到:
相关推荐
〖GB 11643-1999〗中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码...
中国的居民身份证有18位。其中前17位是信息码,...每一位被赋予一个“权值”,其中,第i位的权值w[i]的计算方法是: 引用 w[i] = 2**(17-i) 其中,i=0,1,2,3,…,17,运算符按Python惯例:x**y表示x的y次方,x%y表示
2. 提取身份证号码的最后一位校验码,并将其与`getIDChar18`函数计算得到的校验码进行比较。 3. 如果最后一位校验码正确,则通过`showRst`函数显示验证通过的信息,包括生日和性别。生日是通过`id.substr(6,8)`提取...
需要注意的是,这里的权值计算方法与国家标准中的略有不同,此处仅为示例,实际应用时应使用标准中的权值。 4. **获取校验系数**:在D3单元格中输入公式`=MOD(D2,11)`以获取身份证号码第一位的校验系数。然后向右...
// 如果计算得到的校验码与身份证号码最后一位相同,则身份证号码校验正确 return true; } else { // 如果不同,则校验不通过 return false; } ``` 在上述代码逻辑中,如果计算出的校验码与身份证号码的第18位...
在编写程序进行身份证号码校验时,首先要了解身份证号码的基本结构,它由18位数字组成,其中前17位是地区的日期编号和顺序编号,最后一位是校验码。校验码的计算涉及到了加权求和和模运算,以及一个特定的校验码对照...
18位身份证号码的最后一位校验码用于确保号码的有效性。其计算方法如下: 1. **前17位数字权值**: - 权重分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2。 2. **计算校验码**: - 计算公式为 \( S = \sum_{i=0}...
加权因子为一组固定的数字序列(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2),其中第一位权值对应身份证号码的第一位数字,以此类推,第二位权值对应身份证号码的第二位数字,依此类推至第17位。 2. 模运算:在完成加权...
2. **校验码验证**:通过正则表达式匹配格式后,需要对身份证号码的前17位数字进行加权求和,然后对求和结果除以11,根据得到的余数,从校验码数组中取出对应的校验码与身份证号码的最后一位进行比对。若相同,则...
1. 光刻ROM(只读存储器):DS18B20的64位光刻ROM包含了一个独特的64位序列号,这个序列号就像是传感器的身份证,用于区分网络中多个DS18B20设备。 2. EEPROM(非易失性可电擦除的随机存储器):具有可读可写的能力...