如何将字符串,日期,时间,字节转换为c#中的bitarray

本文关键字:转换 bitarray 中的 字节 时间 字符串 日期 | 更新日期: 2023-09-27 17:52:57

我正试图获得将字符串转换为bitarray的函数,日期到bitarray到bitarray的时间字节到位数组。有谁能帮我用c#的这些函数吗

如何将字符串,日期,时间,字节转换为c#中的bitarray

为了完整起见,我将包括将任意对象转换为字节数组的方法(它可能比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;
}

最接近框架的是System.BitConverter类和System.Text.Encoding.GetBytes()方法。除此之外,您还需要代码将这些字节数组转换为位数组(尽管,实际上,对于任何相同的操作,字节数组都更好),并且这些都不包括日期/时间信息(您可以查看转换DateTime的Ticks属性)。

如果您将任何类型视为对象,则可以使用一般方法获得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的构造函数