【发布时间】:2020-10-15 07:31:36
【问题描述】:
我有这个代码:
string IDNumber = "0x0037D70D";
long x = 0x0037D70D; //Working
long x = long.Parse(IDNumber); //Error Input string was not in a correct format.
需要将上面的字符串 (IDNumber) 发送到 long y,并且应该保持变量格式和典型值,因为它以 0x.... 开头,与 IDNumber 字符串中的相同
请帮助我。
编辑:
我在 DLL 文件中有一个函数,这个函数接受一个数据类型为 long 的参数
如果我给这个长参数提供像 0x0037D70D 这样的值,那么函数可以正常工作并完成所需的工作,但是如果我给长参数提供任何其他格式的值,比如 3659533,函数就不起作用
string example1 = "0x0037D70D";
long example2 = 0x0037D70D;
最后,我得到了字符串格式的值,例如 example1,我想将其转换为 example2,因为如果我将值写成 example2 格式并保存在 long 变量中,那么它就可以工作
更新: 问题解决了,我使用此功能与外部硬件设备进行通信,多次尝试设备挂起后,我让设备休息,@Kirill Polishchuk 建议的解决方案为我工作。
long l = Convert.ToInt64(IDNumber, 16);
【问题讨论】:
-
这个副本回答了你的问题:Convert integer to hexadecimal and back again
-
请包括您收到的错误。
-
@Ňɏssa Pøngjǣrdenlarp 这不是这种情况,因为我想将十六进制保留在 long 变量中而不将其转换为整数
-
@John 我得到的错误是输入字符串的格式不正确。
-
long是“长整数”的缩写。十六进制是二进制数据的字符串表示形式。