2014-03-12 5 views
0

파이썬에서 bitarray lib를 사용하여 bitarray (40 비트)을 Redis로 저장합니다. Redis에서이 값을 검색하면 다음과 같이 나타납니다. \xe8\x00\x00\x00\x00C#에서 16 진수를 16 진수로 디코딩하려고 시도

어떻게이 값을 C#에서 "01010101"로 변환합니까?

감사합니다.

편집 :

내가이 양식을 사용하는 경우 : http://easycalculation.com/hex-converter.php를 반환 이진 값은 내가 기대하고있는 무슨이다.

+0

이 도움이됩니까은? http://alperguc.blogspot.ca/2008/11/c-convert-hexadecimal-to-binary-string.html – Brandon

+0

이미 시도했지만 작동하지 않습니다. – Greg

+0

"E8, 00, 00, 00, 00"으로 지정한 값으로 무엇을 기대합니까? 그리고 C#의 가치는 어떻게 표현됩니까? – Brandon

답변

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); 
+0

니스, 고마워요! 그러나 "복잡하다", BitArray를 사용하여이를 수행하는 방법은 없습니다. 사실 나는 위치를 기반으로 조금 확인하고 싶습니다. – Greg

+0

@ Grégory 'BitArray'예제를 포함하여 답변을 편집했습니다. – itsme86

+0

BitArray 샘플을 사용하려고하면 bitArray [0]이 TRUE 대신 FALSE를 반환합니다. – Greg

관련 문제