c#数据处理

本文介绍了多种数据格式之间的转换方法,包括十六进制字符串与字节数组的互转、字节数组与字符串的转换等,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.十六进制字符串转换为字节数组
private const string CharSet="0123456789ABCDEF";
int nLen=%%1.Length/2;
byte[] %%2=new byte[nLen];
for(int i=0;i<nLen;i++) {
string chs=%%1.ToUpper();
if(chs.Length<2) return -1;
%%2[i]=(byte)(CharSet.IndexOf(chs.Substring(i*2,1)*16+CharSet.IndexIf(chs.Substring(i*2+1,1)));
}

2.字节数组转换为十六进制字符串
byte[] todetail=%%1;
string %%2 = BitConverter.ToString(todetail,0,todetail.Length).Replace("-"," ");

3.字节数组转换为英文字符串
byte[] buff=%%1;
string %%2 = Encoding.UTF8.GetString(buff,0,buff.Length);

4.英文字符串转换为字节数组
byte[] %%2=Encoding.UTF8.GetBytes(%%1);

5.Unicode编码转换为字符串
byte[] utf16be=%%1;
string %%2=Encoding.BigEndianUnicode.GetString(utf16be,0,utf16be.Length);

6.字符串转换为 Unicode编码
byte[] %%2=Encoding.BigEndianUnicode.GetBytes(%%1);

7.从ByteBuffer中获取byte数组
byte[] byRead = %%1;
int nLen=Buffer.ByteLength(byRead);
byte[] %%2=new byte[nLen];
Array.Copy(byRead,0,%%2,0,nLen);

8.十六进制字符串中插入空格
string %%2="";
int nLen=%%1.Length;
for(int i=0;i<nLen/2;i++) {
%%2+=%%1.Substring(i*2,2)+" ";
}

9.十六进制字符串中删除空格
%%2=%%1.Trim(" ");

#if !defined(AFX_CAR_H__85FED81E_252B_4F7D_BCB7_92A9ED40891F__INCLUDED_) #define AFX_CAR_H__85FED81E_252B_4F7D_BCB7_92A9ED40891F__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // Car.h : header file // #include "mapx.h" typedef struct{ char strID[11]; char strName[21]; int nType; StateType nState; double dMapX; double dMapY; double dSpeed; double dDirection; double dX; // 当前位置X坐标 double dY; // 当前位置Y坐标 long lFeaID; // 车辆符号的ID SelectType nSelect; }SCar; class CMapView; ///////////////////////////////////////////////////////////////////////////// // CCar command target class CCar : public CCmdTarget { DECLARE_DYNCREATE(CCar) public: CCar(); // protected constructor used by dynamic creation virtual ~CCar(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCar) //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CCar) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG DECLARE_MESSAGE_MAP() protected: CMapStringToPtr m_mapIdToCar; CMapX* m_pMapX; CMapXLayer* m_pLayer; SCar* m_pPick; SCar* m_pLock; UINT m_nSensitivity; BOOL m_bDisplayState; public: CStringArray m_straCarType; BOOL Initialize( CMapX* pMapX, CMapXLayer* pLayer ); void AddFeature( SCar* pCar ); void AddCar( SCar* pCar ); BOOL LoadCars( CString strSelect ); void DeleteFeature( SCar* pCar ); void DeleteCar( SCar* pCar ); BOOL DeleteCars( CString strSelect ); void UpdateFeature( SCar* pCar ); void UpdateCarDB( SCar* pCar ); void UpdateGraph(); SCar* GetCar( double X, double Y ); void Bind(); void UnBind(); UINT GetCarColor( SCar* pCar ); void Pick( SCar* pCar ); UINT UpdateStatus( CString strMapID, const LPBYTE lpData, DWORD dwCount ); UINT UpdateStatus(); void Lock(); void Unlock(); BOOL MotionDetect(); void Flash(); };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值