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. React.js 中文文档

    转自http://react-china.org/t/react-js/398的jsgeeker 中文文档地址 http://reactjs.cn GitHub地址 https://github.co ...

  2. json sort

    Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列.sort() 方法可以接受一个 方法为参数. sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组 ...

  3. Django-rest-framework(五)自定义功能

    我们可以在settings.py文件中定义登录,权限,分页,异常等的全局配置,如下所示 REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'utils.pa ...

  4. 菜鸟笔记 -- Chapter 6.4 面向对象的三大特性

    6.4.1  三大特性概述 面向对象的三大特性是Java中一个很重要的基本理念. 封装是面向对象的核心思想.将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的意思.采用 ...

  5. Nacicat for Oracle 绿色版 亲测可用

    参考: http://blog.csdn.net/u013107634/article/details/52741591 https://blog.csdn.net/zhengyikuangge/ar ...

  6. Angularjs基础(八)

    AngularJS Bootstrap AngularJS 的首选样式表是 Twitter Bootstrap ,Twitter Bootstrap 是目前最受欢迎的前端框架 Bootstrap 你可 ...

  7. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水

    链接:https://www.nowcoder.com/acm/contest/90/L 来源:牛客网 1.题目描述 -- 在一个风雨交加的夜晚,来自异世界的不愿透露姓名的TMK同学获得了两种超强药水 ...

  8. C++ string和int相互转换

    首先需要C++ 11的支持 打开devC++,点击tools,点击编译环境,然后出现的框第一个勾选,输入-std=c++11即可 然后使用 to_string() 和 atoi() 就可以轻松实现其相 ...

  9. A^B Mod C (51Nod - 1046 )(快速幂)

    给出3个正整数A B C,求A^B Mod C.   例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^ ...

  10. HTTP头部信息解释分析

    HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Chars ...