c#中 uint--byte[]--char[]--string相互转换汇总
uint-----byte[]-----char[]-----string
?
??????? 在在做一些互操作的時(shí)候往往需要一些類型的相互轉(zhuǎn)換,比如用c#訪問win32api的時(shí)候往往需要向api中傳入DWORD參數(shù) 即:uint參數(shù)這些數(shù)值所表示的數(shù)據(jù)在實(shí)際的應(yīng)用中可能需要以字符的形式顯示,但是c#對(duì)api的關(guān)系無法跟c++相比,所以在c#中進(jìn)行一些類型數(shù)據(jù)的轉(zhuǎn)換十分必要了,
??? 下面將用到的一些簡(jiǎn)單的轉(zhuǎn)換操作貼上來,方便記憶??????
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]);}????
?
char[]--->byte[]
????? byte[] bpara= System.Text.Encoding.Default.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;
?
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進(jìn)行字符交互的時(shí)候,一定要注意字符順序,涉及到api中高低位數(shù)據(jù)的問題,即獲取到api中DOWRD的數(shù)據(jù)在c#表示中往往是反序,所以在c#中獲取或者傳遞字符串時(shí)一定要注意反序處理后才能轉(zhuǎn)換成uint給api使用,有機(jī)會(huì)好好總結(jié)一下貼上來。????
轉(zhuǎn)載于:https://www.cnblogs.com/my-blog/archive/2008/11/14/1333692.html
總結(jié)
以上是生活随笔為你收集整理的c#中 uint--byte[]--char[]--string相互转换汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。