1. private static Byte[] ConvertFrom(string strTemp)
  2. {
  3. try
  4. {
  5. if (Convert.ToBoolean(strTemp.Length & 1))//数字的二进制码最后1位是1则为奇数
  6. {
  7. strTemp = "0" + strTemp;//数位为奇数时前面补0
  8. }
  9. Byte[] aryTemp = new Byte[strTemp.Length / 2];
  10. for (int i = 0; i < (strTemp.Length / 2); i++)
  11. {
  12. aryTemp[i] = (Byte)(((strTemp[i * 2] - '0') << 4) | (strTemp[i * 2 + 1] - '0'));
  13. }
  14. return aryTemp;//高位在前
  15. }
  16. catch
  17. { return null; }
  18. }
  19. /// <summary>
  20. /// BCD码转换16进制(压缩BCD)
  21. /// </summary>
  22. /// <param name="strTemp"></param>
  23. /// <returns></returns>
  24. public static Byte[] ConvertFrom(string strTemp, int IntLen)
  25. {
  26. try
  27. {
  28. Byte[] Temp = ConvertFrom(strTemp.Trim());
  29. Byte[] return_Byte = new Byte[IntLen];
  30. if (IntLen != 0)
  31. {
  32. if (Temp.Length < IntLen)
  33. {
  34. for (int i = 0; i < IntLen - Temp.Length; i++)
  35. {
  36. return_Byte[i] = 0x00;
  37. }
  38. }
  39. Array.Copy(Temp, 0, return_Byte, IntLen - Temp.Length, Temp.Length);
  40. return return_Byte;
  41. }
  42. else
  43. {
  44. return Temp;
  45. }
  46. }
  47. catch
  48. { return null; }
  49. }
  50. /// <summary>
  51. /// 16进制转换BCD(解压BCD)
  52. /// </summary>
  53. /// <param name="AData"></param>
  54. /// <returns></returns>
  55. public static string ConvertTo(Byte[] AData)
  56. {
  57. try
  58. {
  59. StringBuilder sb = new StringBuilder(AData.Length * 2);
  60. foreach (Byte b in AData)
  61. {
  62. sb.Append(b >> 4);
  63. sb.Append(b & 0x0f);
  64. }
  65. return sb.ToString();
  66. }
  67. catch { return null; }
  68. }

C#下16进制和BCD码转换代码的更多相关文章

  1. 2进制,16进制,BCD,ascii,序列化对象相互转换

    public final static char[] BToA = "0123456789abcdef".toCharArray() ; 1.16进制字符串转为字节数组 /** * ...

  2. 太有用了,所以转:Delphi下16进制位图数据转位图

    如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: object Image1: TImage Le ...

  3. Delphi下16进制位图数据转位图

    如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: ? 1 2 3 4 5 6 7 8 9 10 1 ...

  4. C语言 16进制与ascii码互转

    /*把ASCII字符转换为16进制 */ uint8_t char_to_hex(const uint8_t *ch) { uint8_t value = 0; if(*ch >= 0 & ...

  5. linux shell下16进制 “\uxxxx” unicode to UTF-8中文

    问题出现背景: 项目中有个通过ip获取归属地城市需求,我是直接通过新浪的ip归属查询接口来获取的.我使用的是shell脚本调用 RESULT=$(curl -s 'http://int.dpool.s ...

  6. [转]Java中byte与16进制字符串的互相转换

    Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符, ...

  7. Python 16进制与字符串的转换

    电脑上装了Python2.7和3.3两个版本,平时运行程序包括在Eclipse里面调试都会使用2.7,但是由于某些原因在cmd命令行中输入python得到的解释器则是3.3, 一直没对此做处理,因为这 ...

  8. Java中byte与16进制字符串的互相转换

    * Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串. * @param s ...

  9. 进制与ASCII码转换

    LabeledEdit4.Text := chr(); // 用十进制方式赋值: ASCII码转换为字符 65 -> A LabeledEdit4.Text := #; // 用十进制方式赋值: ...

随机推荐

  1. 【P2447 [SDOI2010]外星千足虫】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2447 dalao们都说简单...解异或方程组 可我不是dalao qwq #include <algo ...

  2. 【luoguP1238】【NOIP2014】生活大爆炸版剪刀石头布

               生活大爆炸版剪刀石头布                      ——[传送门] 这道题可以原原本本地说得上是一道水题了,通过判断两人的出拳不同给分然后统计输出.就是对于游戏得分 ...

  3. Mac使用GNU版本的sed

    今天在mac下用sed试图替换\t ,结果发现不生效,Google之后发现mac作为unix分支的系统上的sed与GNU版本的sed行为不太一致. 使用以下命令安装GNU命令套件: brew inst ...

  4. data-ng-hide 指令

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  5. 菜鸟笔记 -- Chapter 6.3 对象

    6.3 对象 Java是一门面向对象的程序设计语言,对象是由类抽象出来的,所有的问题都是通过对象来处理的,对象可以操作类的属性和方法解决相应的问题,所以了解对象的产生.操作和生存周期对学习Java语言 ...

  6. #leetcode刷题之路20-有效的括号

    #include <iostream> #include <string> #include <stack> using namespace std; bool i ...

  7. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--F-等式

    链接:https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 1.题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数.(x.y.n均 ...

  8. [codevs1036] 商务旅行

    题目描述 Description 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任 ...

  9. 2822: [AHOI2012]树屋阶梯

    Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1161  Solved: 694[Submit][Status][Discuss] Descriptio ...

  10. BZOJ1607: [Usaco2008 Dec]Patting Heads 轻拍牛头(模拟 调和级数)

    Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 3031  Solved: 1596[Submit][Status][Discuss] Descriptio ...