18位身份證校驗位演算法

2021-05-28 16:58:33 字數 1130 閱讀 6639

package day05;

/** * 身份證第18位計算法 身份證第18位(校驗碼)的計算方法

* * 1、將前面的身份證號碼17位數分別乘以不同的 係數。 從第一位到第十七位的係數分別為:

* 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 3 4 0 5 2419800101001

* 2、將這17位數字和係數相乘的結果相加。 3、用加出來和除以11,看餘數是多少? 4、餘數只可能有0-1-2-3-4-5-6-

* 7-8-9-10這11個數字。 其分別對應的最後 一位身份證的號碼為 1-0-x-9-8-7-6-5-4-3-2。

* * 5、通過上面得知如果餘數是2,就會在身份證的第18位數字上出現羅馬數字的ⅹ。如果餘數是10,身份證的最後一位號碼就是2。

* 例如:某男性的身份證號碼是34052419800101001x。我們要看看這個身份證是不是合法的身份證。

* 首先我們得出前17位的乘積和是189,然後用189除以11得出的結果是17

* +2/11,也就是說其餘數是2。最後通過對應規則就可以知道餘數2對應的數字是x。所以,可以判定這是乙個合格的身份證號碼。

* *

*/// char rmb = ;

public class idcarddemo

public static boolean verify(string id) ;

int sum = 0;

for (int i = 0; i < w.length; i++)

// 用加出來和除以11,看餘數是多少?

char ch = ;

// return ch[sum%11]==

// (id.charat(17)=='x'?'x': id.charat(17));

int c = sum % 11;

/** 分別對應的最後 一位身份證的號碼為 1-0-x-9-8-7-6-5-4-3-2。

*/char code = ch[c];

char last = id.charat(17);

last = last == 'x' ? 'x' : last;

return last == code;

}}

15位身份證補全為18位身份證演算法

一 15位身份證和18位身份證號碼結構介紹 要進行身份證號碼的驗證,首先需要了解我國身份證號碼的編碼規則。我國身份證號碼多由若干位數字或者數字與字母混合組成。早期身份證由15位數字構成,這主要是在1980年以前發放的身份證,後來考慮到千年蟲問題,因為15位的身份證號碼只能為1900年1月1日到199...

js 身份證校驗 15位和18位

校驗身份證號碼 function checkidcardno checkobj 校驗身份證號碼 function verifyidcardno idcardno else if idno.length 18 if18idcardno idno return false 15位身份證,只有數字 fun...

身份證 15位公升級18位 和最後一位校驗位計算

include include using namespace std char cnid18crc const char id18 身份證 最後一位校驗位 void cnid 15to18 char id18 const char id15 身份證 15位公升級18位 int main 身份證 最...