将十六进制数转换为int或byte然后检查c#中byte数组的结果数?

时间:2013-10-21 20:36:53

标签: c#

我的号码是“000001B6”(十六进制)。我想将十六进制“000001B6”转换为整数或字节,然后在字节数组中搜索结果编号,以检查该数字是否存在于数组中。

我怎样才能在C#中这样做:

byte[] temp = new byte[20];

number = 000001B6 // convert number to integer or byte then search result number in array 

2 个答案:

答案 0 :(得分:0)

尝试将十六进制数转换为整数

string hexNumber = "000001B6";
int integerValue = int.Parse(hexNumber, System.Globalization.NumberStyles.HexNumber);

您只能搜索255,因为它是byte[]的最大值,因此您必须确保十六进制数不应超过该值。

但你的例子是字符串ie。 00001B6相当于438。所以你需要照顾范围。

否则,您可以简单地使用.Any函数来检查数组中是否存在。

bool isExists = temp.Any(x => x == integerValue);

答案 1 :(得分:0)

byte[] temp = new byte[20];
var i = int.Parse("000001B6", System.Globalization.NumberStyles.HexNumber); //438
if(i <= byte.MaxValue) //will never be true for 000001B6 since 438 > 255
    var hasValue = temp.Contains((byte)i);