将字符串类型的十六进制值转换为字节并将它们与
Convert hex value of type string to byte and AND them
我有两个价值观。
十六进制的一个字符串。另一个二进制字符串。必须将第一个字符串转换为二进制并将 "AND" 应用于它们。
string mask = "2F"; // binary value of hex would be 0010 1111
string binary = "0010 0000";
// 将掩码转换为二进制
string binaryMask = ConvertToString(mask); // result must be 0010 1111;
string result = binaryMask & binary; // AND them both - result : 0010 0000
我找到了解决方案
string value = "2F";
string value2 = "00100000";
int value1Int = Convert.ToInt32(value, 16);
int value2Int = Convert.ToInt32(value2, 2);
var and = value1Int & value2Int;
var hex = and.ToString("X");
首先,从 binary
字符串中删除空格(如果您不确定输入,可以删除两个字符串上的空格):
string mask = "2F";
/* You can use "0010 0000".Trim().Replace(" ", "");
to make sure there is no whitespace at beginning/end
of the string */
string binary = "0010 0000".Replace(" ", "");
将两个值都转换为数字:
// You can use .TryParse() here, to make sure if input is valid.
var a = short.Parse(mask, System.Globalization.NumberStyles.HexNumber);
// or var a = Convert.ToInt32(mask, 16);
var b = Convert.ToInt32(binary, 2);
应用AND
运算符:
var c = a & b;
再次将结果转换为string
:
string result = Convert.ToString(c, 2);
输出:
100000
我有两个价值观。 十六进制的一个字符串。另一个二进制字符串。必须将第一个字符串转换为二进制并将 "AND" 应用于它们。
string mask = "2F"; // binary value of hex would be 0010 1111
string binary = "0010 0000";
// 将掩码转换为二进制
string binaryMask = ConvertToString(mask); // result must be 0010 1111;
string result = binaryMask & binary; // AND them both - result : 0010 0000
我找到了解决方案
string value = "2F";
string value2 = "00100000";
int value1Int = Convert.ToInt32(value, 16);
int value2Int = Convert.ToInt32(value2, 2);
var and = value1Int & value2Int;
var hex = and.ToString("X");
首先,从 binary
字符串中删除空格(如果您不确定输入,可以删除两个字符串上的空格):
string mask = "2F";
/* You can use "0010 0000".Trim().Replace(" ", "");
to make sure there is no whitespace at beginning/end
of the string */
string binary = "0010 0000".Replace(" ", "");
将两个值都转换为数字:
// You can use .TryParse() here, to make sure if input is valid.
var a = short.Parse(mask, System.Globalization.NumberStyles.HexNumber);
// or var a = Convert.ToInt32(mask, 16);
var b = Convert.ToInt32(binary, 2);
应用AND
运算符:
var c = a & b;
再次将结果转换为string
:
string result = Convert.ToString(c, 2);
输出:
100000