从this question开始,我需要为字符串设置一些内存值,而不是long。我注意到使用Cheat Engine时,如果我通过浏览内存区域将地址值设置为字符串,则会有一个整数值,例如“6513249”为“abc”。
我如何将字符串转换为此表单,以用作long?
感谢。
答案 0 :(得分:2)
使用Encoding.GetBytes使用正确的编码将字符串转换为字节数组,而不是直接写入字节,您可能不需要转换为longs afterall。
如果你必须转换为longs - 确保你理解endiannes知道首先应该是哪些字节,再次找出编码并将字符(可能包括代理对)转换为带有Encoding.GetBytes的字节数组通过在字节上使用移位运算符(>>
和<<
)来组合每8个字节中的长值。将结果字节数组包装在MemeoryStream中比BinaryReader更容易并读取长值。