我有一项与另一个应用程序集成的服务,它只接受 21 个十六进制字符。我需要传递并接收一个包含 11 个十进制字符的字符串,例如:String s = "0101230154V";
我想知道,如何使用移位操作将其转换为位并传输,因为我无法将十进制字符串转换为十六进制,因为它会产生 22 个十六进制字符。我试过下面的代码。我认为可以进行六进制转换,但是当我尝试转换回十进制表示法时它不起作用,请给我其他值。我认为程序员 C#、C++ 和 Java 可以帮助我。
int n = 99; // 2^6 bits to use 99
int k = 999; // 2^9 bits to use 999
int bits = (n << 6) | (k << 9 << 6); // I'm not sure if it is ok to convert and use with hexa
var hexa = bits.ToString("X"); // I will transmit this hexa to a web service
在另一个项目中,我有一个 Windows 服务来从 Web 服务中读取 hexa。我可以读得很好,但我不知道如何转换回 hexa 值并取n
andk
值,例如:
string hexa = GetFromWebService(); // get from the value from the web service here, its fine
// I will recieve the hexa and get the number in bits
int received = Int32.Parse(hexa, System.Globalization.NumberStyles.HexNumber);
// here I need to discover the N and K values... how?
如何发现n
和k
价值?
最终解决方案
long v = 123456789456;
string h = v.ToString("X");
// trasmit h value
var data = long.Parse(hexaValueFromService, System.Globalization.NumberStyles.HexNumber);
谢谢你