在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
c#中 uint--byte[]--char[]--string相互转换汇总uint-----byte[]-----char[]-----string
在在做一些互操作的时候往往需要一些类型的相互转换,比如用c#访问win32api的时候往往需要向api中传入DWORD参数 即:uint参数这些数值所表示的数据在实际的应用中可能需要以字符的形式显示,但是c#对api的关系无法跟c++相比,所以在c#中进行一些类型数据的转换十分必要了, uint--->byte[] byte[] bpara =System.BitConverter.GetBytes(uint upara);
byte[]--->uint uint upara= System.BitConverter.ToUint32(bpara);
byte--->char system.convert.tochar(bpara);
char--->byte system.convert.tobyte(cpara);
byte[]--->char[] (1)char[] cpara= System.Text.Encoding.Default.GetChars(bpara);(1) (2)char[] cpara=new char[bpara.length]; for(int i=0;i <bpara.length;i ++){char[i]=system.convert.tochar(bpara[i]);} (3)char[] cpara= new ASCIIEncoding().GetChars(bpara);
char[]--->byte[] (1)byte[] bpara= System.Text.Encoding.Default.GetBytes(cpara); (2) byte[] bpara= new ASCIIEncoding().GetBytes(cpara); char[]--->string String spara=new String(cpara);
string---char[] char[] cpara=spara.ToCharArray()
uint---->char[] (1)uint-->byte[]; (2)byte[]-->char[];
uint--->string (1)uint-->byte[]; (2)byte[]-->char[]; (3)char[]-->string;
byte[]--->string (1).byte[]-->char[]; (2).char[]-->string; (3) new ASCIIEncoding().GetString(bprar); char[]--->uint (1).char[]-->byte[]; (2).byte[]-->uint; string--->byte[] bpara= System.Text.Encoding.Default.GetBytes(sPara)
string--->uint (1)string-->byte[]; (2)byte[]-->uint;
注意在跟api用uint进行字符交互的时候,一定要注意字符顺序,涉及到api中高低位数据的问题,即获取到api中DOWRD的数据在c#表示中往往是反序,所以在c#中获取或者传递字符串时一定要注意反序处理后才能转换成uint给api使用,有机会好好总结一下贴上来。 |
请发表评论