zoukankan      html  css  js  c++  java
  • 计算IMEI号的校验位

    计算IMEI号的校验位

           移动设备国际识别码(IMEI:International Mobile Equipment Identification Number)是差别移动设备的标志,具有唯一性,贴在手机背面的标志上,而且储存在移动设备中,可用于监控被窃或无效的移动设备,它也是该手机在厂家的"档案"和"身份证号".IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受.其总长为15位,每位数字仅使用0~9的数字(含义见下文).

           IMEI由15位数字组成,其组成为:

    • 1、前6位数(TAC,Type ApprovalCode)是"型号核准号码",一般代表机型.
    • 2、接着的2位数(FAC,Final Assembly Code)是"最后装配号",一般代表产地.
    • 3、之后的6位数(SNR)是"串号",一般代表生产顺序号.
    • 4、最后1位数(SP)一般是"0",为检验码,备用.

          IMEI校验码算法:

    • (1).将偶数位数字分别乘以2,分别计算个位数和十位数之和
    • (2).将奇数位数字相加,再加上上一步算得的值
    • (3).假设得出的数个位是0则校验位为0,否则为10减去个位数

         如:35 89 01 80 69 72 41 偶数位乘以2得到5*2=10 9*2=18 1*2=02 0*2=00 9*2=18 2*2=04 1*2=02,计算奇数位数字之和和偶数位个位十位之和,得到 3+(1+0)+8+(1+8)+0+(0+2)+8+(0+0)+6+(1+8)+7+(0+4)+4+(0+2)=63 => 校验位 10-3 = 7

    char GetIMEICheckDigit(char *pp_Imei)
    {
    	int i;
    	int vl_Sum1 = 0, vl_Sum2 = 0, vl_Total = 0;
    	int vl_Temp = 0;
    
    	for (i = 0; i<14; i++)
    	{
    		/*(1)将奇数位数字相加(从1開始计数)*/
    		if ((i % 2) == 0)
    		{
    			vl_Sum1 = vl_Sum1 + pp_Imei[i] - '0';
    		}
    		else
    		{
    			/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1開始计数)*/
    			vl_Temp = (pp_Imei[i] - '0') * 2;
    			if (vl_Temp < 10)
    			{
    				vl_Sum2 = vl_Sum2 + vl_Temp;
    			}
    			else
    			{
    				vl_Sum2 = vl_Sum2 + 1 + vl_Temp - 10;
    			}
    		}
    	}
    
    	/*(1)+(2)*/
    	vl_Total = vl_Sum1 + vl_Sum2;
    
    	/*假设得出的数个位是0则校验位为0,否则为10减去个位数 */
    	if ((vl_Total % 10) == 0)
    	{
    		return '0';
    	}
    	else
    	{
    		return (char)(10 - (vl_Total % 10) + '0');
    	}
    }

  • 相关阅读:
    String StringBuffer StringBuild的区别
    String比较涉及知识点 实例
    maven build失败 (Failure to find io.renren:renren-security:pom:3.2.0 in http://maven.aliyun.com/nexus/content/groups/public/ was cached in the local repository...)
    mysql压缩包安装相关过程命令
    FastDFS搭建单机图片服务器(二)
    FastDFS搭建单机图片服务器(一)
    JDK8 parallelStream性能测试
    idea 获取resources资源目录下文件
    idea / eclipse 批量 替换 空白行
    阻塞队列 BlockingQueue 常用方法详解
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7203800.html
Copyright © 2011-2022 走看看