C#各种数据类型转换
2014-04-03 16:17
330 查看
在在做一些互操作的时候往往需要一些类型的相互转换,比如用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使用,有机会好好总结一下贴上来。
下面将用到的一些简单的转换操作贴上来,方便记忆
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使用,有机会好好总结一下贴上来。
相关文章推荐
- c# 高精度的timer
- C# 邮箱批量注册 设计思路
- 关于C#枚举中最后一项是否必须有逗号的问题结论
- C#实现网页内容正文抓取
- C# Form Dispose 和 Close的区别
- ArcEngine三维开发实现3D符号以现实单位显示
- C# webBrowser 模拟登陆填充操作等(写网页注册机之类的时候要用到)
- 编写高质量代码改善C#程序的157个建议[动态数组、循环遍历、对象集合初始化]
- c#委托
- C#函数式程序设计之局部套用与部分应用
- c# 托管和非托管的介绍
- c# 学习 笔记
- C#中的委托和事件(续)
- C# 中的委托和事件
- C# .net 如何抓取网页内容
- 利用ICSharpCode进行压缩和解压缩
- C# .net 如何抓取网页内容
- C#文件与文件夹操作
- 关于c#类对象的继承和vistual小例子
- c# new