预定义的基础类型转换
一、BitConverter 将预定义的基础类型与字节数据进行互转1、将值类型转成字节数组(Unicode)byte[] data=BitConverter.GetBytes(**) eg:’哈’=>[200,84],‘1‘=[49,0],1.2 =>[8个元素];true=>1 2、将字节数组转成值类型xx data=BitConverter.ToXX(byte[],offset) eg: BitConverter.ToChar(new byte[]{200,84},0))=>’哈’ ;BitConverter.ToInt16(new bintyte[]{69,0},0))=>69; 3、将字节数组中每个元素值转成十六进制表示:BitConverter.ToString(new byte[]{69,0,128);">0},128);">0) 结果: 45-00-00-00
二、字符与ASCII码转化:一个ASCII码占一个字节,其中一个为检验位。共27=128个字符,只适合所有的拉丁字母。 1、字符转成ASCII码:Convert.ToByte(‘a’)==>97 ;?? (int)’a’=>97 ; 2、ASCII码转成字符:Convert.ToChar(97)=>’d’; 强制转换: (char)97=’a’
三、字符串与十六进制表示的字节数组之间的转换void Main() { Console.WriteLine(StrToHex("哈啊a的1我z!")); Console.WriteLine(HexToStr(B9 FE B0 A1 61 B5 C4 31 CE D2 7A 21)); } //字符串转换成十六进制字符串 public string StrToHex(string mStr) { var a = ASCIIEncoding.Default; return BitConverter.ToString(a.GetBytes(mStr)).Replace(-",0);">" ); } 十六进制字符串转换成字符串 string HexToStr( mHex) { mHex = mHex.Replace(""); if (mHex.Length <= 0) return ; byte[] vBytes = byte[mHex.Length / 2]; for (int i = 0; i < mHex.Length; i += ) if (!byte.TryParse(mHex.Substring(i,128);">2),NumberStyles.HexNumber,null,255);">out vBytes[i / ])) vBytes[i / 2] = 0return ASCIIEncoding.Default.GetString(vBytes); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |