c#将字符串作为十六进制代码进行操作?
如果我想用字符串来表示十六进制值,有没有办法在它们之间进行位AND、位OR之类的转换c#将字符串作为十六进制代码进行操作?,c#,hex,C#,Hex,如果我想用字符串来表示十六进制值,有没有办法在它们之间进行位AND、位OR之类的转换 我知道有些类型可以处理这个问题,但我需要将它们作为字符串保存。我不知道这种类型 我通常使用以下方法: //check if string is in hex format. bool OnlyHexInString(string text) { for (var i = 0; i < text.Length; i++) {
我知道有些类型可以处理这个问题,但我需要将它们作为字符串保存。我不知道这种类型 我通常使用以下方法:
//check if string is in hex format.
bool OnlyHexInString(string text)
{
for (var i = 0; i < text.Length; i++)
{
var current = text[i];
if (!(Char.IsDigit(current) || (current >= 'a' && current <= 'f')))
{
return false;
}
}
return true;
}
编辑1
如果结果不是null或空的,我忘了在结果上添加Int64.Parse()。对不起
执行操作并将结果返回到十六进制字符串:
public string IntToToHex(string integerAsAString)
{
if (!string.IsNullOrEmpty(integerAsAString))
{
Int64 integerValue = 0;
bool parsed = Int64.TryParse(integerAsAString, out integerValue);
if (parsed)
return integerValue.ToString("X");
else
throw new Exception(string.Format("Couldn't parse {0} hex string!", integerAsAString));
}
else
throw new Exception(string.Format("Couldn't parse {0} hex string!", integerAsAString));
}
在阅读了评论和答案之后,我选择使用字节数组(多亏了Dusan) 我选择的解决方案: 我所要做的就是在需要使用位运算符时将字符串转换为字节,然后再转换回字符串
此链接显示字符串值之间的逻辑和/或??您可以在条件/
bool
操作数上使用逻辑运算符,是指按位和/或吗?但不能在字符串上使用它们。什么是十六进制代码?十六进制值?您可以对整数类型(例如,UInt16
)执行逻辑运算,同时将其转换为string
,以向用户显示十六进制值。因此,将string
转换为整数、执行运算并将其转换回字符串应该可以做到这一点,但是将它们保持为整数是有意义的。我更正了我的问题,抱歉用词不当,可能还有另一种方法可以做你想做的事情。你为什么需要它?我为rom黑客制作了一个十六进制解释器,到目前为止,我存储了所有十六进制代码,并以字符串的形式执行所有操作,因此将它们保留为字符串会更简单,因为有很多代码。
public string IntToToHex(string integerAsAString)
{
if (!string.IsNullOrEmpty(integerAsAString))
{
Int64 integerValue = 0;
bool parsed = Int64.TryParse(integerAsAString, out integerValue);
if (parsed)
return integerValue.ToString("X");
else
throw new Exception(string.Format("Couldn't parse {0} hex string!", integerAsAString));
}
else
throw new Exception(string.Format("Couldn't parse {0} hex string!", integerAsAString));
}