【发布时间】:2016-05-30 07:48:27
【问题描述】:
我有一个 csv 文件,它以这种格式存储长值:
0x0000000000000001
0x0000000000000002
0x0000000000000020
0x0000000000040000
我想将值保存在长变量中。 我可以直接保存数据,例如:
long t = 0x0000000000040000;
这不会引发异常。
但是,我似乎无法将此格式从字符串(当我从 csv 文件中读取时)转换为长格式。
我试过了
Convert.ToInt64("0x0000000000040000");
如this question建议的那样
我也试过了
long.Parse("0x0000000000040000", NumberStyles.HexNumber);
但这也会引发异常
当我去掉前面的 0x 时,我可以解析它。 但是该数字随后会被保存而没有零(例如,0x0000000000000001 变为 1),这不是我想要的。
Tl;博士:
有人知道怎么解析吗
string s = "0x0000000000000001";
到
long l = 0x0000000000000001;
?
【问题讨论】:
-
使用
s.Subtring(2),因此您删除了前两个字符0x -
»但是该数字随后保存为不带零(例如 0x0000000000000001 变为 1),这不是我想要的。« -- 数字是相同的。如果你想在某处写它时以不同的方式格式化它(例如
l.ToString("x16")),这是另一点,但你通常不应该关心一个数字在没有任何区别时是如何表示的。 -
@Joey 你是完全正确的。现在我觉得自己很愚蠢......
标签: c# string long-integer