2014-03-24 1 views
-2

문자열을 bitarray로 변환하기위한 함수를 얻으려고합니다. 날짜를 bitarray to bitarray 바이트 배열에 맞 춥니 다. 아무도 C#에서 이러한 기능을 도와주세요.C에서 문자열, 날짜, 시간, 바이트를 변환하는 방법 #

+2

당신이 달성하려고하는 무엇의 샘플 게시물을 업데이트하십시오 (예 : "foo"가 XXXXX로 변환되어야 함) 그리고 문제를 시도했거나 문제가있는 것. 그렇지 않으면 너무 넓습니다. –

답변

2

는 완성도를 위해, 나는 (그것이 경우 BinaryFormatter 및 MemoryStream을보다 아마도 더 빠른) 바이트 배열에 임의의 객체를 돌려 내 방법을 포함합니다 :

public static byte[] ToByteArray(object obj) 
{ 
    int len = Marshal.SizeOf(obj); 
    byte[] arr = new byte[len]; 
    IntPtr ptr = Marshal.AllocHGlobal(len); 
    Marshal.StructureToPtr(obj, ptr, true); 
    Marshal.Copy(ptr, arr, 0, len); 
    Marshal.FreeHGlobal(ptr); 
    return arr; 
} 
+0

감사합니다. 나는 그것을 얻었다. :) – Sagar

1

당신이 개체로 모든 유형을 고려하는 경우가 그 다음 byte[]

private byte[] ObjectToByteArray(Object myObject) 

{ 
    if(myObject == null) 
     return null; 
    BinaryFormatter bF = new BinaryFormatter(); 
    MemoryStream mS = new MemoryStream(); 
    bF.Serialize(mS, myObject); 
    return ms.ToArray(); 
} 

을 얻기 위해 일반적인 방법을 사용할 수 있습니다 당신은 BitArray

2

당신이에 내장 얻을 수있는 가장 가까운의 생성자에 공급할 수 프레임 워크는 System.BitConverter 클래스이고 System.Text.Encoding.GetBytes() 메소드입니다. 이 외에도 convert those byte arrays into bit arrays 코드가 필요합니다 (실제로 모든 정상적인 작동을 위해서는 바이트 배열이 더 좋습니다).이 날짜/시간 정보는 제공되지 않습니다. 대신 DateTime의 Ticks 속성을 변환 할 수 있습니다.

+0

+1에 대한 'DateTime.Ticks'. 날짜 정보를 바이너리 형식으로 옮기는 유일한 방법 이겠지요. 물론 실제 DateTime 객체는 제외하고 말이죠. –