我正在从Python(使用bitarray lib)向Redis保存bitarray
(40位)。
当我从Redis中检索此值时,我得到:\xe8\x00\x00\x00\x00
如何在C#中将此值转换为“01010101”?
谢谢!
编辑:
当我使用此表格时: http://easycalculation.com/hex-converter.php,返回的二进制值是我所期待的。
答案 0 :(得分:2)
你可以这样做:
// Chop up the string into individual hex values
string[] hexStrings = hexString.Split(new[] { "\\x" }, StringSplitOptions.RemoveEmptyEntries);
// Convert the individual hex strings into integers
int[] values = hexStrings.Select(s => Convert.ToInt32(s, 16)).ToArray();
// Convert the integers into 8-character binary strings
string[] binaryStrings = values.Select(v => Convert.ToString(v, 2).PadLeft(8, '0')).ToArray();
// Join the strings together
string binaryString = string.Join("", binaryStrings);
编辑 - 以下是您想要使用BitArray
时可以执行的操作示例:
// Chop up the string into individual hex values
string[] hexStrings = hexString.Split(new[] { "\\x" }, StringSplitOptions.RemoveEmptyEntries);
// Convert the individual hex strings into bytes
byte[] bytes = hexStrings.Select(s => Convert.ToByte(s, 16)).ToArray();
BitArray bitArray = new BitArray(bytes);