1
Я ищу более эффективный/элегантный способ взять первые 4 бита байта. Байты в большой EndianВозьмите первую половину байт
var gpsFixStatus = (int)raw[28];
int[] remainder = new int[8];
for (int i = 0; i < 7; i++)
{
remainder[i] = gpsFixStatus % 2;
gpsFixStatus = gpsFixStatus/2;
}
var gpsFix = byte.Parse((remainder[7].ToString() + remainder[6].ToString() + remainder[5].ToString() + remainder[4].ToString()));
Именно то, что я искал. raw [28] >> 4 делает то, что мне нужно. Спасибо – Jesse
@Jesse Примечание: я только что отредактировал его дробно. На самом деле вам нужна версия '' '' '' '' '' '' '' ', которая ставит нуль в самом правом бите. Версия '>>' реплицирует знаковый бит, поэтому, если вы начинаете с подписанного типа и отрицательного целого числа, вы получите их в наиболее значимых битах при смене. –
Компилятор, похоже, не похож на >>> – Jesse