Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以相同格式将十六进制字符串转换为长字符串_C#_C# 4.0 - Fatal编程技术网

C# 以相同格式将十六进制字符串转换为长字符串

C# 以相同格式将十六进制字符串转换为长字符串,c#,c#-4.0,C#,C# 4.0,我有以下代码: string IDNumber = "0x0037D70D"; long x = 0x0037D70D; //Working long x = long.Parse(IDNumber); //Error Input string was not in a correct format. 需要将上面的字符串(IDNumber)发送到长y,并且应保持变量格式和典型值,以0x…开头。。。。与IDNumber字符串中的相同 请帮帮我 编辑: 我在DLL文件中有一

我有以下代码:

string IDNumber = "0x0037D70D";

long x = 0x0037D70D; //Working

long x = long.Parse(IDNumber); //Error Input string was not in a correct format.
需要将上面的字符串(IDNumber)发送到长y,并且应保持变量格式和典型值,以0x…开头。。。。与IDNumber字符串中的相同

请帮帮我

编辑:


我在DLL文件中有一个函数,这个函数接受一个长数据类型的参数

如果我给这个长参数0x0037D70D这样的值,那么函数工作正常并完成所需的工作,但是如果我给这个长参数任何其他格式的值,比如3659533函数不工作

string example1 = "0x0037D70D";
long example2 = 0x0037D70D;
最后,我得到了字符串格式的值,比如example1,我想把它转换成example2,因为如果我把值写成example2格式并保存在long变量中,那么它就可以工作了

更新: 问题解决后,我使用此功能与外部硬件设备进行通信,在多次尝试设备挂起后,我将设备和@Kirill Polishchuk为我提供的解决方案放在一边

long l = Convert.ToInt64(IDNumber, 16);

您应该删除
0x
前缀:

long y = long.Parse(IDNumber.Replace("0x", ""), System.Globalization.NumberStyles.HexNumber);
long x = 0x0037D70D; //Working
Console.WriteLine(x.ToString("X")); //prints "37D70D", no prefix

我建议使用
Convert
类:

long l = Convert.ToInt64(IDNumber, 16);

此副本回答了您的问题:请包括您收到的错误。@Ňɏssa Pøngjǣrdenlarp不是这样的,因为我希望在长变量中保留十六进制作为其值,而不将其转换为integer@John我得到的错误是输入字符串的格式不正确。
long
是“long integer”的缩写。十六进制是二进制数据的字符串表示形式。这将十六进制转换为整数,结果将是3659533,而不是0x0037D70D@WaleedELerksosy…这到底是怎么回事。你可能还想做什么?如果您想要十六进制(字符串)格式,为什么要将其转换为长格式?我在DLL文件中有函数,此函数接受一个数据类型为long的参数如果我给此参数0x0037D70D这样的值,则函数正常工作并执行所需的任务,但如果我使用3659533这样的任何其他格式执行,则函数不工作字符串example1=“0x0037D70D”;长示例2=0x0037D70D;最后我得到了字符串格式的值,比如example1,我想把它转换成example2,因为如果我把值写成example2,那么working@John我更新了问题:)谢谢,问题解决了:)