IMEI格式

IMEI 碼由15位數(shù)字組成,其中第15位(IME15)是檢驗(yàn)位,是通過將前14(IMEI14)運(yùn)算得出的,

計(jì)算公式公式如下:

IMEI15= 絕對(duì)值( (iSum+eSum) 除以10的余數(shù) - 10 );

IMEI14:從左到右分別為第1,2,3~14位。第14位為奇數(shù)位,第13位為偶數(shù)位

其中,eSum = 7位偶數(shù)累加

iSum = 7位奇數(shù)位2除以10的整數(shù) 累加 + 奇數(shù)位2除以10的余數(shù)累加

static void  create(){
        //
        String tac="861337";
        String fac="03";
        for(int j=0;j<10;j++){
            int snr=491201+j;
            String index=String.format("%06d", snr);
            String data=tac+fac+index;
             int sum1=0;
             int sum2=0;
            for (int i = 0; i < data.length(); i++) {             
                    int num = data.charAt(i) - '0';     // ascii to num  
                    //System.out.println(num);  
                    /*(1)將奇數(shù)位數(shù)字相加(從1開始計(jì)數(shù))*/  
                    if (i%2==0) {  
                        sum1 = sum1 + num;  
                    }else{  
                        /*(2)將偶數(shù)位數(shù)字分別乘以2,分別計(jì)算個(gè)位數(shù)和十位數(shù)之和(從1開始計(jì)數(shù))*/  
                        int temp = num * 2 ;  
                        if (temp < 10) {  
                            sum2=sum2+temp;  
                        }else{  
                            sum2 = sum2 + temp + 1 -10;  
                        }  
                    }  
                }  
                int total = sum1+sum2;  
                /*如果得出的數(shù)個(gè)位是0則校驗(yàn)位為0,否則為10減去個(gè)位數(shù) */  
                String resultStr;
                if (total % 10 ==0) {  
                    resultStr=data+"0";
                }else{  
                    resultStr=data+ (10 - (total %10))+"";  
                }  
            
            System.err.println(resultStr);
        }
        
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容