学习笔记:char存储的十六进制数据和其它数据类型的转换
来源:互联网 发布:怎么弄大批量淘宝号 编辑:程序博客网 时间:2024/05/16 05:06
最近做的东西涉及到从读取char数组中存放的十六进制数,每个char数据的码型(ASCII,BCD,FLOAT,HEX)不一样。需要进行对应数据类型的转换。实现如下:
string DataTrans::Char2BCD(unsigned char *c,int len){ char s[100]; char c1,c2; string str=""; for(int i=0;i<len;i++) { c1= c[i]&0x0f; c2= c[i]>>4; int n=(int)(((c2&0x08+c2&0x04+c2&0x02+c2&0x01)<<4)+(c1&0x08+c1&0x04+c1&0x02+c1&0x01)); if(n<=9&&n>=0) { str+="0"; } str+=itoa(n,s,10); } return str;}void DataTrans::Char2BYTE(unsigned char c, unsigned char *s){ for(int i=7;i>=0;i--) { s[i]=c&0x01; c = c>>1; } }float DataTrans::Char2Float(unsigned char *cp){ return *(float *)cp;}string DataTrans::Char2Hex(char a1){ string str = ""; //int n = (a1<<8)+a2;int n=a1; for (int i=2*sizeof(char) - 1; i>=0; i--) { str += "0123456789ABCDEF"[((n >> i*4) & 0xF)]; } return str;}int DataTrans::Hex2Oct(unsigned char c1, unsigned char c2){return (int)(c1<<8)+(int)c2;}
- 学习笔记:char存储的十六进制数据和其它数据类型的转换
- 数据类型转换(二)char*和CString的转换
- 计算机系统学习笔记一之二进制与十六进制的转换
- springMVC学习笔记四(数据类型转换和数据验证)
- 十进制和十六进制的转换
- 十六进制和二进制的转换
- 基本数据类型和引用数据类型的数据存储
- CString,string,char*数据类型之间的转换
- 十六进制字符串与char字节数组的转换函数
- 十六进制字符串与char字节数组的转换函数 II
- 十六进制字符串、char数组的转换: c c++ java
- 十六进制的字符串转换到十六进制byte数据
- 十六进制数据与字符串的相互转换
- 【C++学习笔记】宽字符(LPCWTR/wstring)和(char*/string)的转换实现
- 十六进制的数字字符和十六进制数之间的转换
- string 和char * char[]之间的转换
- string char *和char[] 之间的转换
- string const char *和char *的转换
- oracle ebs下form之入门篇
- 存储过程中SELECT与SET对变量赋值
- 上海斗地主攻略超级系列1——竞叫
- A CSS Framework
- flash builder4.5代码提示不出来
- 学习笔记:char存储的十六进制数据和其它数据类型的转换
- 上海斗地主攻略超级系列2——顶家
- VC++ DataGrid 提示:can not initialize data binding
- 喜羊羊与灰太狼之委托与事件
- 写给自己的几条励志咒语
- 分水岭算法 matlab的三种实现方法
- 各种雷人的大学选修课
- Efforts for programming,Crazy for youth
- QuickPart应用系列之一——利用QuickPart制作一个简单的webpart