C#string转化成16进制int
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#string转化成16进制int相关的知识,希望对你有一定的参考价值。
private string asctostr(String tmpStr)
String returnStr = "";
String str = tmpStr;
if (str=="")
return "";
int i = 0;
int j = 0;
int partflg = 2;
byte[] Str = new byte[(int)str.Length / 2];
while (i < str.Length)
String ReHex = str.Substring(i, i + partflg);
int ReAsc = Integer.valueOf(ReHex, 16).intValue();
int ReAsc =
Str[j] = (byte) ReAsc;
i += partflg;
j++;
try
returnStr = new String(Str, "GBK");
catch (Exception e)
return returnStr;
int ReAsc = Integer.valueOf(ReHex, 16).intValue();怎么用C#的方法实现,还有
returnStr = new String(Str, "GBK");也编译不过去
/// 从汉字转换到16进制
/// </summary>
/// <param name="s"></param>
/// <param name="charset">编码,如"utf-8","gb2312"</param>
/// <param name="fenge">是否每字符用逗号分隔</param>
/// <returns></returns>
public static string ToHex(string s, string charset, bool fenge)
if ((s.Length % 2) != 0)
s += " ";//空格
//throw new ArgumentException("s is not valid chinese string!");
System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
byte[] bytes = chs.GetBytes(s);
string str = "";
for (int i = 0; i < bytes.Length; i++)
str += string.Format("0:X", bytes[i]);
if (fenge && (i != bytes.Length - 1))
str += string.Format("0", ",");
return str.ToLower();
/// <summary>
/// 从16进制转换成汉字
/// </summary>
/// <param name="hex"></param>
/// <param name="charset">编码,如"utf-8","gb2312"</param>
/// <returns></returns>
public static string UnHex(string hex, string charset)
if (hex == null)
throw new ArgumentNullException("hex");
hex = hex.Replace(",", "");
hex = hex.Replace("\n", "");
hex = hex.Replace("\\", "");
hex = hex.Replace(" ", "");
if (hex.Length % 2 != 0)
hex += "20";//空格
// 需要将 hex 转换成 byte 数组。
byte[] bytes = new byte[hex.Length / 2];
for (int i = 0; i < bytes.Length; i++)
try
// 每两个字符是一个 byte。
bytes[i] = byte.Parse(hex.Substring(i * 2, 2),
System.Globalization.NumberStyles.HexNumber);
catch
// Rethrow an exception with custom message.
throw new ArgumentException("hex is not a valid hex number!", "hex");
System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
return chs.GetString(bytes);
汉子的话使用gb2312 参考技术A 16进制到10进制?
//十进制转二进制
Convert.ToString(69, 2); //69为被转值
//十进制转八进制
Convert.ToString(69, 8); //69为被转值
//十进制转十六进制
Convert.ToString(69, 16); //69为被转值
//二进制转十进制
Convert.ToInt32(”100111101″, 2); //100111101为被转值
//八进制转十进制
Convert.ToInt32(”76″, 8); //76为被转值
//C# 16进制转换10进制
Convert.ToInt32(”FF”, 16); //FF为被转值 参考技术B int ReAsc = Convert.ToUInt16(ReHex);
returnStr = Encoding.GetEncoding("GBK").GetString(Str);
private string asctostr(String tmpStr)
String returnStr = "";
String str = tmpStr;
if (str == "")
return "";
int i = 0;
int j = 0;
int partflg = 2;
byte[] Str = new byte[(int)str.Length / 2];
while (i < str.Length)
String ReHex = str.Substring(i, i + partflg);
int ReAsc = Convert.ToUInt16(ReHex);
Str[j] = (byte)ReAsc;
i += partflg;
j++;
try
returnStr = Encoding.GetEncoding("GBK").GetString(Str); //new String(Str, "GBK");
catch (Exception e)
return returnStr;
参考技术C 我学的是c#,你是要转换类型是不是?是的话把要把什么值转换成什么类型说一下,我看不懂你给出的代码写的是什么··· 参考技术D string str = "0x1A";
int x = Convert.ToInt32(str, 16);
Console.WriteLine(x);
C++ string 转化为LPCTSTR
RT,两个类型怎么转化
C++ string 转化为LPCTSTR可以参考下面的代码:
string str = "hello";
CString cstr(str.c_str());
MoveFile(cstr,.....); //CString 自动转为LPCTSTR
扩展资料:
C++ 中的 string 类
MFC中的CString类使用起来非常的方便好用,但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。
其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。
参考资料来源:百度百科-string
参考技术AC++string转化为LPCTSTR可以参考下面的代码:
Stringstr=“你好”。
CStringcstr(STR)c_str();
移动文件(装运箱,…);CString被自动转换为LPCTSTR。
扩展资料:
c++中的字符串类
MFC中的CString类非常容易使用,但是如果离开MFC框架,却有数百个不太容易使用的类怎么办?答案是肯定的,有些人可能会说,即使没有MFC框架,您也可以找到在MFC中使用API的方法。本文最后给出了具体的操作方法。
事实上,很多人可能会跳过在标准c++中使用string类。标准c++中提供的string类也非常强大,通常可以在开发项目时使用。
参考技术B 你说的string是标准库的std::string吗?LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。如果使用UNICODE字符集,则LPCTSTR = LPCWSTR,否则LPCTSTR = LPCSTR。
标准库的std::string转换成LPCSTR很简单:直接调用c_str()即可。例:
std::string a="abc";
LPCSTR str = a.c_str();
标准库还有一个wstring,代表宽字符的string,std::wstring转换成LPCWSTR也一样很简单:
std::wstring a = L"abc";
LPCWSTR str = a.c_str();
如果要是std::string转换成LPCWSTR或者std::wstring转换成LPCSTR那就比较麻烦了,需要调用MultiByteToWideChar或WideCharToMultiByte进行字符集之间的转换。不过大多数时候不需要这种交叉转换,一个程序一般只会使用一种字符集。
以上是关于C#string转化成16进制int的主要内容,如果未能解决你的问题,请参考以下文章