{
if ((CRC & 0x0001) != 0)
{
CRC \>>= 1;
CRC ^= POLYNOMIAL;
}
else
{
CRC \>>= 1;
}
}
}
return Maticsoft.DBUtility.HLConvert.ToHex(System.BitConverter.GetBytes(CRC));
}
/// <summary>
/// 例如把如下字符串转换成字节数组
/// AA AA AA AA 0A 00 68 00 06 03 04 54 21 28 22 E5 F3 16 BB BB BB BB 转换为字节数组
/// </summary>
/// <param name="hex">十六进制字符串</param>
/// <returns></returns>
public static byte\[\] ToBytesCRC(string hex)
{
string\[\] temp = hex.Split(' ');
byte\[\] b = new byte\[temp.Length + 2\];
for (int i = 0; i < temp.Length; i++)
{
b\[i\] \= Convert.ToByte(temp\[i\], 16);
}
return b;
}
/// <summary>
/// 将字节数据转换为十六进制字符串,中间用 “ ”分割 如:AA AA AA AA 0A 00 68 00 06 03 04 54 21 28 22 E5 F3 16 BB BB BB BB
/// </summary>
/// <param name="vars">要转换的字节数组</param>
/// <returns></returns>
public static String ToHex(byte\[\] vars)
{
return BitConverter.ToString(vars).Replace('\-', ' ').Trim();
}
CS校验(累加和)
public static string CSCheck(string str)
{
if (str.Length == 0) return "";
else str = str.Trim();
byte\[\] sss = ToBytes(str);
int n = 0;
for (int i = 0; i < sss.Length; i++)
{
n += sss\[i\];
}
return ToHex(n);
}
/// <summary>
/// AB CD 12 3B 转换为字节数组
/// </summary>
/// <param name="hex">十六进制字符串</param>
/// <returns></returns>
public static byte\[\] ToBytes(string hex)
{
string\[\] temp = hex.Split(' ');
byte\[\] b = new byte\[temp.Length\];
for (int i = 0; i < temp.Length; i++)
{
if (temp\[i\].Length > 0)
b\[i\] \= Convert.ToByte(temp\[i\], 16);
}
return b;
}
/// <summary>
/// 转换为符合本程序的十六进制格式
/// </summary>
/// <param name="var">1 2 3 等。</param>
/// <returns>返回十六进制字符串,如果是1-9的话,前面带零</returns>
/// <example>例如: 5 ="05" 12 ="0C" 无论何时,都是两位数。 </example>
public static string ToHex(int var)
{
int cs = var;
string tmp = "";
if (cs == 0) { tmp = "00"; }
while (cs > 0)
{
int ys;
cs \= Math.DivRem(cs, 256, out ys);
tmp \= tmp.Insert(0, string.Format(" {0}", Right("00" + Convert.ToString(ys, 16), 2).ToUpper()));
}
return tmp.Trim();
}
public static string Right(string str, int Length)
{
if ((Length <= 0) || (str == null))
{
return "";
}
int length = str.Length;
if (Length >= length)
{
return str;
}
return str.Substring(length - Length, Length);
}
LRC校验(LRC错误校验用于ASCII模式)
///
/// 取模FF(255)
/// 取反+1
/// </summary>
/// <param name="writeUncheck"></param>
/// <returns></returns>
public static string LRCheck(string writeUncheck)
{
char\[\] hexArray = new char\[writeUncheck.Length\];
hexArray \= writeUncheck.ToCharArray();
int decNum = 0, decNumMSB = 0, decNumLSB = 0;
int decByte, decByteTotal = 0;
bool msb = true;
for (int t = 0; t <= hexArray.GetUpperBound(0); t++)
{
if ((hexArray\[t\] >= 48) && (hexArray\[t\] <= 57))
decNum \= (hexArray\[t\] - 48);
else if ((hexArray\[t\] >= 65) & (hexArray\[t\] <= 70))
decNum \= 10 + (hexArray\[t\] - 65);
if (msb)
{
decNumMSB \= decNum \* 16;
msb \= false;
}
else
{
decNumLSB \= decNum;
msb \= true;
}
if (msb)
{
decByte \= decNumMSB + decNumLSB;
decByteTotal += decByte;
}
}
decByteTotal \= (255 - decByteTotal) + 1;
decByteTotal \= decByteTotal & 255;
int a, b = 0;
string hexByte = "", hexTotal = "";
double i;
for (i = 0; decByteTotal > 0; i++)
{
b \= Convert.ToInt32(System.Math.Pow(16.0, i));
a \= decByteTotal % 16;
decByteTotal /= 16;
if (a <= 9)
hexByte \= a.ToString();
else
{
switch (a)
{
case 10:
hexByte \= "A";
break;
case 11:
hexByte \= "B";
break;
case 12:
hexByte \= "C";
break;
case 13:
hexByte \= "D";
break;
case 14:
hexByte \= "E";
break;
case 15:
hexByte \= "F";
break;
}
}
hexTotal \= String.Concat(hexByte, hexTotal);
}
return hexTotal;
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
Java架构进阶面试及知识点文档笔记
这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理
Java分布式高级面试问题解析文档
其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!
互联网Java程序员面试必备问题解析及文档学习笔记
Java架构进阶视频解析合集
va)**
[外链图片转存中…(img-X2jiXpJd-1711944615673)]
最后
Java架构进阶面试及知识点文档笔记
这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理
[外链图片转存中…(img-PRjUiZD6-1711944615674)]
Java分布式高级面试问题解析文档
其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!
[外链图片转存中…(img-pD18lvPZ-1711944615674)]
互联网Java程序员面试必备问题解析及文档学习笔记
[外链图片转存中…(img-gSqqPh9w-1711944615675)]
Java架构进阶视频解析合集