Java异或校验
来源:互联网 发布:中国招标网软件 编辑:程序博客网 时间:2024/05/21 20:21
Java异或校验
今天要用到异或校验,折腾了半天,写下来留作备用。
功能是将一串16进制的数进行异或校验,输出校验和。
代码:
import java.util.Scanner;/* * 亦或校验算法 */public class Checksum_XOR { @SuppressWarnings("resource") public static void main(String[] args) { // TODO Auto-generated method stub while(true){ int i = 0,j = 0; Scanner scanner = new Scanner(System.in); String in = scanner.nextLine(); int len = in.length(); short inb[] = new short[len]; for(i=0;i<len;i++){ inb[i] = charToHex(in.charAt(i)); //将String里的每一个char转换为Hex } for(i =0;i<len;i++){ //将每两个Hex合并成一个byte inb[j] = (byte) (((inb[i]<<4)&0x00f0)|((inb[i+1])&0x000f)); i++; j++; } byte temp = 0x00; //校验值 for(i = 0;i<len/2;i++){ //异或 temp ^= inb[i]; } System.out.printf("%x", temp); } } static short charToHex(char x){ //将单个char转换为Hex short result = 0; switch(x){ case 'a':result=10;break; case 'b':result=11;break; case 'c':result=12;break; case 'd':result=13;break; case 'e':result=14;break; case 'f':result=15;break; case 'A':result=10;break; case 'B':result=11;break; case 'C':result=12;break; case 'D':result=13;break; case 'E':result=14;break; case 'F':result=15;break; default:result = (short) Character.getNumericValue(x);break; } return result; }}
阅读全文
0 0
- Java异或校验
- Java异或运算和校验
- 异或校验方法
- 奇偶校验,异或校验,和校验,nios串口校验
- 异或求校验和
- 异或校验工作方式
- LRC异或校验算法
- BCC(异或校验)、CRC、LRC校验算法
- 异或校验算法的应用
- BCC(异或)、CRC、LRC校验算法
- 自己写的异或校验函数
- 十六进制字符串异或校验函数,自创
- java 校验15位或18位身份证号码
- 身份证号码校验 java校验
- linux c CRC,异或校验,累加和源码
- GPS数据包的ASCII异或校验和计算方法(VC++)
- 校验输入分数或小数
- Java中的异或
- Java Date 时间类型的操作
- 依赖注入和控制反转的理解,写的太好了。
- 原生native传参进ReactNative导航根视图StackNavigator时的参数处理方法
- Oracle中start with…connect by prior子句用法
- 充值流程
- Java异或校验
- WebService学习总结(四)——调用第三方提供的webService服务
- 【C++】继承和派生
- 函数调用的基本原理
- Linux 配置FTP用户
- python 键盘输入总结
- jQuery四种事件绑定方式.bind(),.live(),.delegate(),on()的区别
- 一 分布式应用架构演进
- Docker