Tôi có một mảng của Floats cần phải được chuyển đổi thành một mảng byte và trở lại một float [] ... bất cứ ai có thể giúp tôi làm điều này một cách chính xác?Làm thế nào để chuyển đổi một mảng float thành một byte [] và ngược lại?
Tôi đang làm việc với lớp bitConverter và thấy mình bị kẹt khi cố gắng nối thêm kết quả.
Lý do tôi làm điều này là vì vậy tôi có thể lưu giá trị thời gian chạy vào luồng IO. Bộ nhớ đích là các khối trang Azure trong trường hợp có vấn đề. Tôi không quan tâm về những gì endian này được lưu trữ trong, miễn là nó đầu vào phù hợp với đầu ra.
static byte[] ConvertFloatToByteArray(float[] floats)
{
byte[] ret = new byte[floats.Length * 4];// a single float is 4 bytes/32 bits
for (int i = 0; i < floats.Length; i++)
{
// todo: stuck...I need to append the results to an offset of ret
ret = BitConverter.GetBytes(floats[i]);
}
return ret;
}
static float[] ConvertByteArrayToFloat(byte[] bytes)
{ //to do }
Bạn có thể làm việc với tuần tự hóa/deserialization đến/từ luồng bộ nhớ không? Sau đó bạn có thể nhận mảng 'byte' từ luồng hoặc xây dựng một luồng từ mảng' byte'. –
Sử dụng phương thức serialization .Net? Tôi không muốn bao gồm bất kỳ XML, và chỉ mất một bit dữ liệu thô ... hệ thống là khá tối ưu hóa và mỗi bit được chiếm ... – LamonteCristo
bạn có thể làm serialization nhị phân thay vì serialization XML: http: // msdn .microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.aspx –