[转载]c#中 uint--byte[]--char[]--string相互转换汇总
生活随笔
收集整理的這篇文章主要介紹了
[转载]c#中 uint--byte[]--char[]--string相互转换汇总
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在在做一些互操作的時(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[]--->uintuint upara= System.BitConverter.ToUint32(bpara);byte--->charsystem.convert.tochar(bpara);char--->bytesystem.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[]--->stringString 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進(jìn)行字符交互的時(shí)候,一定要注意字符順序,涉及到api中高低位數(shù)據(jù)的問題,即獲取到api中DOWRD的數(shù)據(jù)在c#表示中往往是反序,所以在c#中獲取或者傳遞字符串時(shí)一定要注意反序處理后才能轉(zhuǎn)換成uint給api使用,有機(jī)會(huì)好好總結(jié)一下貼上來。 我舉個(gè)例子: 這個(gè)是遠(yuǎn)望谷860讀寫器關(guān)于時(shí)間的類. #region 設(shè)置間隔時(shí)間 取消間隔時(shí)間/// <summary>/// 設(shè)置間隔時(shí)間 string t/// </summary>/// <param name="t"></param>/// <returns></returns>public static bool SXCSetTimeFilter(ushort t){byte[] t1 = BitConverter.GetBytes(t);byte[] t2 ={ t1[1], t1[0] };int i = XCSetTimeFilter(ptr, t2);if (i == 1)return true;else{//MSG("Error Code: " + i.ToString());return false;}}/// <summary>/// 取消時(shí)間限制./// </summary>/// <returns></returns>public static bool SXCCancelTimeFilter(){int r = XCCancelTimeFilter(ptr);if (r == 1)return true;elsereturn false;}#endregion
轉(zhuǎn)載于:https://www.cnblogs.com/linyefeilyft/archive/2013/04/25/3042641.html
總結(jié)
以上是生活随笔為你收集整理的[转载]c#中 uint--byte[]--char[]--string相互转换汇总的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蟑螂可以用水烫死么?
- 下一篇: c# namespace不能和class