java累加和校验实现方式16进制(推荐)_java

已知一个字符串,求该字符串的16进制累加和,已知一段字符串和校验码,校验和累加是否合法,话不多说了直接上代码

public static String makeChecksum(String data) {
 if (data == null || data.equals("")) {
  return "";
 }
 int total = 0;
 int len = data.length();
 int num = 0;
 while (num < len) {
  String s = data.substring(num, num + 2);
  System.out.println(s);
  total += Integer.parseInt(s, 16);
  num = num + 2;
 }
 /**
  * 用256求余最大是255,即16进制的FF
  */
 int mod = total % 256;
 String hex = Integer.toHexString(mod);
 len = hex.length();
 // 如果不够校验位的长度,补0,这里用的是两位校验
 if (len < 2) {
  hex = "0" + hex;
 }
 return hex;
 }

以上这篇java累加和校验实现方式16进制(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
累加和校验算法
十六进制累加和校验、java 累加和校验算法、java多线程实现累加、java实现crc校验码、java实现进制转换,以便于您获取更多的相关知识。

时间: 2024-12-20 23:59:11

java累加和校验实现方式16进制(推荐)_java的相关文章

java实现汉字转unicode与汉字转16进制实例_java

本文实例讲述了java实现汉字转unicode与汉字转16进制的实现方法.分享给大家供大家参考.具体实现方法如下: 一.汉字转unicode 复制代码 代码如下: public static String toUnicode(String s) {         String as[] = new String[s.length()];         String s1 = "";         for (int i = 0; i < s.length(); i++)   

请问高手们,java如何将带符号的16进制转成10进制?

问题描述 若我有一个带负号的16进制..如何转换成10进制..因为java的parseInt等等的都不允许带符号的.~~ 问题补充:liveHappy 写道 解决方案 Integer.parseInt(String s, int radix);Long.parseInt(String s, int radix);参数说明:s可以为带符号转换字符串 radix为解析s时使用的基数不过s必须在radix的有效范围内,如:radix为16,s中的每个char必须在0-f之间,否则会报NumberFor

java将byte字节流转为16进制函数

例子  代码如下 复制代码 public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; S

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的

java中进制的转换,Byte与16进制的转换方法_java

java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十进制转成十六进制: String Integer.toHexString(int i) 十进制转成八进制 String Integer.toOctalString(int i) 十进制转成二进制  String Integer.toBinaryString(int i) 十六进制转成十进制 Inte

java实现颜色Color对象和16进制之间的转换

package com.tsxs.test; import java.awt.Color; public class TestColor { public static void main(String[] args) { System.out.println(toHexFromColor(Color.BLUE)); System.out.println(toColorFromString(toHexFromColor(Color.BLUE))); } /** * Color对象转换成字符串 *

java发送heartbeat心跳包(byte转16进制)_java

复制代码 代码如下: package com.jxy.web; import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.Socket;import java.net.UnknownHostException; import com.jxy.tools.MyByte; pu

java socket 发送16进制数据-串口通信

问题描述 已有下位机通过ip转串口映射到ip+端口上去(物理通信没有问题了),现在下位机需要接受客户端发送过去的一串16进制的命令请求,然后返回结果,由于需要做成b/s的模式,所以现在想用java做客户端,请问该如何书写?因为java中在socket中只能传byte的数组:而byte的范围有限(-127~128)对于大的数就会溢出:请问如何解决? 解决方案 解决方案二:引用楼主u010212202的回复: 因为java中在socket中只能传byte的数组:而byte的范围有限(-127~128

java 如何把十进制字符串转换为16进制字符串

问题描述 Stringstr1="07101311"要转换成16进制的070A110B也就是07--0710--0A13--1111--0B 解决方案 解决方案二:两两个的截取,然后将截取后的字符转为int,调用Integer.toHexString转为16进制,循环拼接到一起解决方案三:楼上说了.截取调用方法转换.解决方案四:07--0710--0A13--11这个应该是D11--0BStringstr="07101311";StringBuffersb=newS