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");也编译不过去

/// <summary>
/// 从汉字转换到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

参考技术A

C++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的主要内容,如果未能解决你的问题,请参考以下文章

c语言十六进制字符转化成十进制数字问题

Python中int类型和string类型的相互转换

JAVA:string类型转换int(16进制)

高手请进!如何把整形数据转换为字符串(C语言)?

Java语言中,如何将String转化成Int数组

c++ int转化为string 类型