2014-03-24 28 views
-2

我試圖獲得將字符串轉換爲bitarray的函數, date to bitarray time to bitarray byte to bit array。 任何人都可以請幫助我在c#中的這些功能。如何將字符串,日期,時間,字節轉換爲C中的bitarray#

+2

請更新你正在努力實現什麼樣的職位(即「foo」應該轉換爲XXXXX)以及您嘗試/遇到的問題。否則對於SO來說太廣泛了。 –

回答

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

對於'DateTime.Ticks'爲+1。這可能是以二進制格式移動日期信息的唯一明智方式(當然,除了實際的DateTime對象外)。 –

相關問題