From 8d662de2fd262b3a485f16e197cb4d0ca2a61cdf Mon Sep 17 00:00:00 2001
From: zsh_root <979909237@qq.com>
Date: 星期三, 10 十二月 2025 17:03:47 +0800
Subject: [PATCH] 发布版V1.0
---
src/home/Checksum.java | 32 ++++++++++++++++----------------
1 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/home/Checksum.java b/src/home/Checksum.java
index be84512..d11d6ca 100644
--- a/src/home/Checksum.java
+++ b/src/home/Checksum.java
@@ -1,41 +1,41 @@
package home;
public class Checksum {
- /**输出校验码*/
+ /**杈撳嚭鏍¢獙鐮�*/
public static String calculateChecksum(String input) {
- if (input == null) {// 检查输入是否为空
- throw new IllegalArgumentException("输入不能为null");
+ if (input == null) {// 妫�鏌ヨ緭鍏ユ槸鍚︿负绌�
+ throw new IllegalArgumentException("杈撳叆涓嶈兘涓簄ull");
}
- String cleanInput = input.replaceAll("\\s", "");// 移除所有空格
+ String cleanInput = input.replaceAll("\\s", "");// 绉婚櫎鎵�鏈夌┖鏍�
- // 验证处理后的字符串
+ // 楠岃瘉澶勭悊鍚庣殑瀛楃涓�
if (cleanInput.length() < 8 || !cleanInput.startsWith("55AA")) {
- throw new IllegalArgumentException("输入字符串必须以55AA开头且长度至少为8(去除空格后)");
+ throw new IllegalArgumentException("杈撳叆瀛楃涓插繀椤讳互55AA寮�澶翠笖闀垮害鑷冲皯涓�8锛堝幓闄ょ┖鏍煎悗锛�");
}
- // 去掉包头(55AA)和最后4个字符
+ // 鍘绘帀鍖呭ご(55AA)鍜屾渶鍚�4涓瓧绗�
String dataPart = cleanInput.substring(4, cleanInput.length() - 4);
- // 检查中间部分长度是否为偶数
+ // 妫�鏌ヤ腑闂撮儴鍒嗛暱搴︽槸鍚︿负鍋舵暟
if (dataPart.length() % 2 != 0) {
- throw new IllegalArgumentException("中间部分长度必须是偶数(去除空格后)");
+ throw new IllegalArgumentException("涓棿閮ㄥ垎闀垮害蹇呴』鏄伓鏁帮紙鍘婚櫎绌烘牸鍚庯級");
}
int sum = 0;
- // 每两个字符解析为一个字节
+ // 姣忎袱涓瓧绗﹁В鏋愪负涓�涓瓧鑺�
for (int i = 0; i < dataPart.length(); i += 2) {
String byteStr = dataPart.substring(i, i + 2);
int byteValue = Integer.parseInt(byteStr, 16);
- sum = (sum + byteValue) & 0xFFFF; // 保持16位范围
+ sum = (sum + byteValue) & 0xFFFF; // 淇濇寔16浣嶈寖鍥�
}
- // 取反并保持16位
+ // 鍙栧弽骞朵繚鎸�16浣�
int checksum = (~sum) & 0xFFFF;
- // 显式处理高位在前格式
- int lowByte= (checksum >>> 8) & 0xFF; // 高8位
- int highByte= checksum & 0xFF; // 低8位
+ // 鏄惧紡澶勭悊楂樹綅鍦ㄥ墠鏍煎紡
+ int lowByte= (checksum >>> 8) & 0xFF; // 楂�8浣�
+ int highByte= checksum & 0xFF; // 浣�8浣�
- // 格式化为4位十六进制字符串(大写),高位在前
+ // 鏍煎紡鍖栦负4浣嶅崄鍏繘鍒跺瓧绗︿覆锛堝ぇ鍐欙級锛岄珮浣嶅湪鍓�
return String.format("%02X%02X", highByte, lowByte);
}
--
Gitblit v1.10.0