我有字符串,想在C#.net。
中将其转换为十六进制这是我的Eset Nod32密码:
"12968"
程序将此密码保存为二进制注册表项:
"50 d6 e6 e9 e4 f0 cd f2 63 64"
我怎样才能在C#中做到这一点?
答案 0 :(得分:0)
如果你想获得每个数字的十六进制,例如Hex为1,Hex为2等,你可以这样做:
string input = "12968";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
// Get the integral value of the character.
int value = Convert.ToInt32(letter);
// Convert the decimal value to a hexadecimal value in string form.
string hexOutput = String.Format("{0:X}", value);
Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}
或者如果你想得到一个完整的字符串作为一个浮点数,例如这就是:
string hexString = "12968";
uint num = uint.Parse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] floatVals = BitConverter.GetBytes(num);
float f = BitConverter.ToSingle(floatVals, 0);
Console.WriteLine("float convert = {0}", f);
答案 1 :(得分:0)
可以使用以下命令将二进制值写入注册表
static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
RegistryKey rk = Registry.CurrentUser.CreateSubKey("RegistryValueKindExample");
rk.SetValue("BinaryValue", GetBytes("12968"), RegistryValueKind.Binary);