-
C#下16进制和BCD码转换代码
- private static Byte[] ConvertFrom(string strTemp)
- {
- try
- {
- if (Convert.ToBoolean(strTemp.Length & 1))//数字的二进制码最后1位是1则为奇数
- {
- strTemp = "0" + strTemp;//数位为奇数时前面补0
- }
- Byte[] aryTemp = new Byte[strTemp.Length / 2];
- for (int i = 0; i < (strTemp.Length / 2); i++)
- {
- aryTemp[i] = (Byte)(((strTemp[i * 2] - '0') << 4) | (strTemp[i * 2 + 1] - '0'));
- }
- return aryTemp;//高位在前
- }
- catch
- { return null; }
- }
- /// <summary>
- /// BCD码转换16进制(压缩BCD)
- /// </summary>
- /// <param name="strTemp"></param>
- /// <returns></returns>
- public static Byte[] ConvertFrom(string strTemp, int IntLen)
- {
- try
- {
- Byte[] Temp = ConvertFrom(strTemp.Trim());
- Byte[] return_Byte = new Byte[IntLen];
- if (IntLen != 0)
- {
- if (Temp.Length < IntLen)
- {
- for (int i = 0; i < IntLen - Temp.Length; i++)
- {
- return_Byte[i] = 0x00;
- }
- }
- Array.Copy(Temp, 0, return_Byte, IntLen - Temp.Length, Temp.Length);
- return return_Byte;
- }
- else
- {
- return Temp;
- }
- }
- catch
- { return null; }
- }
- /// <summary>
- /// 16进制转换BCD(解压BCD)
- /// </summary>
- /// <param name="AData"></param>
- /// <returns></returns>
- public static string ConvertTo(Byte[] AData)
- {
- try
- {
- StringBuilder sb = new StringBuilder(AData.Length * 2);
- foreach (Byte b in AData)
- {
- sb.Append(b >> 4);
- sb.Append(b & 0x0f);
- }
- return sb.ToString();
- }
- catch { return null; }
- }
-
相关阅读:
支持国产共享软件
Win CE 5.0 增加电池电量显示
[转]C# 系统应用之鼠标模拟技术及自动操作鼠标
自己写的 读写 ini 配置文件类
自己写的 Readini 类
sizeof与strlen()、递归优化题解
Git学习资源收集汇总
好用的Google Chrome插件
【转】C# Socket编程(5)使用TCP Socket
【转】C# Socket编程(4)初识Socket和数据流
-
原文地址:https://www.cnblogs.com/Zhaols/p/6534384.html
Copyright © 2020-2023
润新知