با سلام
من یک برنامه کوچیک نوشتن جهت تبدیل []byte به float .یک تابع که خودم نوشتم و یک تابه که مال خود #C هستش.
مسئله اینجاست وقتی از اول آرایه تبدیل میکنم درسته هر دوتا ولی وقتی از وسط برمیدارم فقط تابع خودم کار میکنه.و تابع خود #C خطا میده.از اونجا که تابع خودم unsafe هستش نمیخام استفاده کنم.
static void Main(string[] args) {
byte[] d = new byte[24];
d[0] = 0xF0;
d[1] = 0x49;
d[2] = 0x02;
d[3] = 0x00; //150000
d[4] = 0xE3;
d[5] = 0x07;//2019
byte[] r = new byte[2];
r[0] = d[4];
r[1] = d[5];
var f1 = BitConverter.ToSingle(r, 0);
float f2 = ToFloat(r, 0);
Console.WriteLine(f1);
Console.WriteLine(f2);
Console.ReadKey();
}
public static unsafe int ToFloat(byte[] data, int startIndex)
{
int result = 0;
fixed (byte* ptr = &data[startIndex])
{
result = *((int*)ptr);
}
return result;
}