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; }
- }
C#下16进制和BCD码转换代码的更多相关文章
- 2进制,16进制,BCD,ascii,序列化对象相互转换
public final static char[] BToA = "0123456789abcdef".toCharArray() ; 1.16进制字符串转为字节数组 /** * ...
- 太有用了,所以转:Delphi下16进制位图数据转位图
如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: object Image1: TImage Le ...
- Delphi下16进制位图数据转位图
如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: ? 1 2 3 4 5 6 7 8 9 10 1 ...
- C语言 16进制与ascii码互转
/*把ASCII字符转换为16进制 */ uint8_t char_to_hex(const uint8_t *ch) { uint8_t value = 0; if(*ch >= 0 & ...
- linux shell下16进制 “\uxxxx” unicode to UTF-8中文
问题出现背景: 项目中有个通过ip获取归属地城市需求,我是直接通过新浪的ip归属查询接口来获取的.我使用的是shell脚本调用 RESULT=$(curl -s 'http://int.dpool.s ...
- [转]Java中byte与16进制字符串的互相转换
Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符, ...
- Python 16进制与字符串的转换
电脑上装了Python2.7和3.3两个版本,平时运行程序包括在Eclipse里面调试都会使用2.7,但是由于某些原因在cmd命令行中输入python得到的解释器则是3.3, 一直没对此做处理,因为这 ...
- Java中byte与16进制字符串的互相转换
* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串. * @param s ...
- 进制与ASCII码转换
LabeledEdit4.Text := chr(); // 用十进制方式赋值: ASCII码转换为字符 65 -> A LabeledEdit4.Text := #; // 用十进制方式赋值: ...
随机推荐
- EntityFrameWork简单操作 EF数据上下文对象操作数据增删改差及批处理
/// <summary> /// EF针对 留言数据库 的 数据上下文对象!!!! /// </summary> static LeaveWordBoradEntities ...
- [转]Matlab2012b安装详解
matlab2012b安装文件下载: http://yunpan.cn/cVY5VsSeUXzai (提取码:ec84) 1.双击setup.exe进行安装.安装中选择“不使用Internet安装” ...
- mysql慢查询开启及分析方法
最近服务维护的公司的DB服务器,总是会出现问题,感觉需要优化一下了,登陆上去,发现慢查询日志都没有开,真是惭愧, 故果断加上慢查询日志, 经过分析sql记录,发现问题很多,开发人员很多没有对sql优化 ...
- django-基于中间件实现限制ip频繁访问
########django-基于中间件写一个限制频繁登陆######## 额额,标题已经很醒目了,通过中间件去实现,其他方法也可以实现 浏览器前端传来的请求,必须通过中间件,才能到后面路由,视图函数 ...
- jquery mobile 移动web(2)
button 按钮 data-role="button" 将超链接变成button. 具有icon 图标的button 组件. 提供了18常用的图标 data-icon =&quo ...
- 正则表达式之——exec,match
刚开始接触正则,发现了一件有意思的事,我想要匹配正则,这下尴尬了- -,光知道正则表达式写法,并不知道正则如何才能获取匹配值. 慢慢摸索中... 找到答案!!! 正则匹配有两种方法: 一种是match ...
- vue webpack 懒加载
自己项目中的写法 const router = new Router({ routes: [ { path: '/index', component: (resolve) => { requir ...
- shardedJedisPool工具类
这里使用的是ShardedJedisPool,而不是RedisTemplate 1.配置文件 <?xml version="1.0" encoding="UTF-8 ...
- vsftpd文件服务参数汇总和虚拟用户使用
FTP文件传输协议 FTP协议特点 基于C/S结构 双通道协议:数据和命令连接 数据传输格式:二进制(默认)和文本(w文本格式会修改文件内容) 两种模式:服务器角度 主动(PORT style):服务 ...
- Linux系统运维基础测试题
1 Linux运维基础测试题(第一关) 通过这段时间学习Linux基础命令,为了检测自己对Linux基础命令掌握的情况,从网上整理13到测试题,并将其整理出来供大家参考学习. 1.1 习题 ...