【发布时间】:2021-06-11 03:56:17
【问题描述】:
我得到了一个十六进制字符串“0009A8040060”的 MAC 地址,我想将最后 3 个字节转换为 int。然后我想把它隐藏起来。我以为我了解了十六进制转换的基础知识 - 但显然没有!
到目前为止我的尝试是
string endSerial = "0009A8040060".Substring(6);
int key = Convert.ToInt32(endSerial, 16);
关键是在那之后262240。这似乎是正确的,但是当我使用服务器上运行的代码进行转换时(我无法更改)
int key = x; // receives over tcp. I´ve logged this int and its transferred ok!
string endSerial = BitConverter.ToString(BitConverter.GetBytes(Convert.ToUInt32(key))).Replace("-", "");
这给出了 endSerial = 60000400。
我希望它是00040060。似乎有某种反向问题?不过BitConverter.IsLittleEndian 总是正确的。
请帮忙
【问题讨论】:
-
我很确定
BitConverter.ToString(uint)不能给你一个 6 个字符的字符串。你想要00040060代替吗? -
是的,没问题! @Sweeper。已编辑。
-
key.ToString("X8")是否适合您的目的?