赞
踩
首先要注意的是int类型是数字,若直接用转换函数必须考虑“.”(小数点)、“ ”(空格)、“,”(逗号)等的字符,看清转换函数的使用条件。如果是自己写函数也要考虑进去。
1.string转10进制
(1) int.TryParse(string);
//UInt16 num = UInt16.Parse(str, (System.Globalization.NumberStyles)16);
(2) Convert.Toint32(string);
(3) (int)string;
注意:
(1)string a = "23.00";可以使用 decimal c = decimal.Parse(a); 或者 Double c = Double.Parse(a); 进行转换;
(2)当使用(int)string强行转换的时候你会发现如果带有小数点系统会被自动忽略。
如果使用Convert.ToInt32转换时系统会四舍五入。
2.string转16进制
(1)string str = "6ac2";
UInt32 num = (ushort)Convert.ToInt32(str, 16);
//10进制转字符串:
UInt16 = “456”;
string hexOfVal = val.ToString("X") ;
(2)String str = "你好";
String format = String.format("%x", new BigInteger(1, str.getBytes("utf-8")));
System.out.println(format);
16进制转字符串:
String mac = "e4bda0e5a5bd";
String str = new String(new BigInteger(mac,16).toByteArray(),"utf-8");
System.out.println(str);
输出:你好
(3) string hexOfVal = val.ToString("X") ;
(4)例:string str="FE FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16";
转换成byte[] bytes={0xFE,0xFE,0xFE,0x68,0xAA,.......,0x16};
public static byte[] StringToByteArray(string hex) { hex = hex.Replace(" ", ""); return Enumerable.Range(0, hex.Length) .Where(x => x % 2 == 0) .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) .ToArray(); }
3.string转2进制
(1)//字符串转二进制
byte[] data = Encoding.Unicode.GetBytes(s);
//二进制转字符串
string s= Encoding.Unicode.GetString(data);
或者
string text = "中国,加bai油!";
//以UTF8编码du方式zhi,转化为字节数dao组zhuan。
byte[] binaryBytes = System.Text.Encoding.UTF8.GetBytes( text );
//以UTF8编码方式,把字节数组还原为字符串shu。
string newText = System.Text.Encoding.UTF8.GetString( binaryBytes );
UnicodeEncoding aa = new UnicodeEncoding();
byte[] pwd = aa.GetBytes("aaa");
(2) ConvertToHex(string asciiString)函数
- public static string ConvertToHex(string asciiString)
- {
- string hex = "";
- foreach (char c in asciiString)
- {
- int tmp = c;
- hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
- }
- return hex;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。