java imei_JAVA 实现 IMEI校验码算法
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
package com.test.main;
public class IMEIGen {
/**
* @param args
*/
public static void main(String[] args) {
String code = "35254112521455";
String newCode = genCode(code);
System.out.println("======"+newCode);
System.out.println(code+newCode);
}
public static String genCode(String code){
int total=0,sum1=0,sum2 =0;
int temp=0;
char [] chs = code.toCharArray();
for (int i = 0; i < chs.length; i++) {
int num = chs[i] - '0'; // ascii to num
//System.out.println(num);
/*(1)将奇数位数字相加(从1开始计数)*/
if (i%2==0) {
sum1 = sum1 + num;
}else{
/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/
temp=num * 2 ;
if (temp < 10) {
sum2=sum2+temp;
}else{
sum2 = sum2 + temp + 1 -10;
}
}
}
total = sum1+sum2;
/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */
if (total % 10 ==0) {
return "0";
}else{
return (10 - (total %10))+"";
}
}
}
java imei_JAVA 实现 IMEI校验码算法相关推荐
- Java生成CRC16数据校验码
CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数 ...
- 【详细说明】二代身份证号码的组成结构(含校验码算法与行政区划代码)
文章内容:二代身份证号码的组成结构(含校验码算法与行政区划代码) 关键词组:身份证号码.组成.校验码.行政区划码 使用软件:无 虚拟环境:无 操作系统:Windows 11 文章目录 一.身份证号码划 ...
- Java身份证号码严格验证(第18位校验码算法实现)
/*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,* 第18位为校验码.检验码分别是0-10共 ...
- 海明校验码算法和纠错
背景介绍 由Richard Hamming于1950年提出.还被广泛采用的一种很有效的校验方法,是只要增加少数几个校验位,就能检测出二位同时出错.亦能检测出一位出错并能自动恢复该出错位的正确值的有效手 ...
- 公民身份号码校验码算法(C#版)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- GB/T 17710-1999 PHP生成校验码
校验码算法描述如下:详细:http://wenku.baidu.com/link?url=CDvNJ1sLYOPzbbxjEy5R-oME95RlfTCUU5-I5M0bqUt0I32b0Xd0EKm ...
- 异或校验 java_Java生成异或校验码、和校验码、CRC校验码、补码求和校验码四种校验码及校验码匹配工具类...
Java生成异或校验码.和校验码.CRC校验码.补码求和校验码四种校验码及校验码匹配工具类 /** * 报文校验码验证规则 */ public class Verification { /** * 校 ...
- java偶校验计算代码_191120_02 Java常用加密校验转换算法汇总
Java常用加密校验转换算法汇总 作者:邵发 官网:http://afanihao.cn/java 本文是Java学习指南系列教程的官方配套文档.内容介绍Java里的常用算法的使用,包含转换Hex / ...
- android MD5校验码的生成与算法实现
android MD5校验码的生成与算法实现 在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD ...
最新文章
- ASP.NET的一套笔试题
- linux系统上搭建vsftp服务
- 推荐6个HTML5编辑器
- 输出php数组结构,在PHP中输出数组结构使用 函数 。
- JVM的堆、栈、方法区
- Stereo matching code
- CodeForce 168 C——Wizards and Trolleybuses
- Web前端求职必备 常见前端面试题汇总(二)
- 如何用 GitHub Actions 写出高质量的 Python代码?
- Python练习-装饰器版-为什么我的用户总被锁定
- java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
- HMM,MEMM,CRF模型的比较
- 截图工具-Snipaste绿色正式版
- 数据结构分类及八种常见数据结构
- 数学三次危机(四)第一次数学危机
- linux中的网络指令ssh ifconfig netstat telnet curl scp
- 蛙蛙推荐:蛙蛙教你文本聚类 - 蛙蛙王子 - 博客园
- 使用 IDEA 远程 Debug 调试
- 【转】完美解决iphone连电脑蓝牙出现bluetooth外围设备无法正确安装
- 如何让开源项目成为你的良师益友