bcd 8421码
bcd码表:
比如一个字符串 String s = "0200"
按对照表转换成二进制
02 : 0000 0010
00 : 0000 0000
s转换为字节的时候
02和00分别转换为一个字节
也就是说字符串"0200"bcd编码之后会是2个字节
代码:
public static byte[] str2bcdOne(String s) {
//如果不是2的倍数,则补0
if (s.length() % 2 != 0) {
s = s + "0";
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//获得字符数组
char[] cs = s.toCharArray();
int high = 0;
int low = 0;
for (int i = 0; i < cs.length; i += 2) {
if ((cs[i] >= '0') && (cs[i] <= '9'))
//得到高位的十进制表示
high = cs[i] - '0';
else {
//溢出
high = cs[i] - '0' - 7;
}
if ((cs[(i + 1)] >= '0') && (cs[(i + 1)] <= '9'))
//得到低位的十进制表示
low = cs[(i + 1)] - '0';
else {
low = cs[(i + 1)] - '0' - 7;
}
System.out.println("high:" +high);
System.out.println("high2:" +DataConverter.intToBinary(high));
System.out.println("low:" + DataConverter.intToBinary(low));
System.out.println("high << 4 | low:" + DataConverter.intToBinary(high << 4 | low));
baos.write(high << 4 | low);
}
return baos.toByteArray();
}
作者:风过无痕-唐
出处:http://www.cnblogs.com/tangyanbo/
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。欢迎加QQ讨论群
出处:http://www.cnblogs.com/tangyanbo/
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。欢迎加QQ讨论群
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?