将字符串"0x1A"转换为sbyte

Nag*_*eti -1 c#

我得到了例外:

输入字符串的格式不正确.

在运行时为以下代码片段.

string str= "0x1A";

sbyte value= Convert.ToSByte(str);
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙解决这个问题吗?

Tor*_*enJ 6

Convert.ToSByte接受一个参数int fromBase来指定你要转换的基数.
在您的情况下,您必须执行以下操作:

sbyte s = Convert.ToSByte(str, 16); // s == 26
Run Code Online (Sandbox Code Playgroud)

您可以在本维基百科文章中阅读有关不同基础(也称为基数)的更多信息.

  • 有用的解释这是什么基础,为什么16等 (3认同)