Tamplier пишет:

Имеем приведенный HEX (от всех байтов вычли offset)
9A 43 0C 07 AD B3 35 29 2F 4A 00 57 08 12 56 06 09 00 00 0C 00 00

Широта:

lat_ц (35,29) = 53(dec),41(dec) (т.е каждый байт переводим в двухзначное число и собираем число) = 5341
lat_д (2F,4A) =  47(dec), 74(dec) (аналогично) = 4774
В таком случае широта получится  5341.4774
байт 00  = 00(dec) - переводим в двухзначное число-строку - получаем 00 первый байт(левый) получившейся строки - 10000 градусов долготы (пометим значение как переменную а=0 в нашем случае), второй(правый) - направление = 0, переводим в двоичный вид(до двух знаков) - получаем 00 - 2 бита первый отвечает за полушарие долготы(W/E=1/0) второй за полушарие широты (S/N=1/0)

Долгота:

Целая часть: 57, 08 = 87(dec), 08(dec)
Дробная часть: 12, 56= 18(dec), 86(dec)
Получаем долгота= а*10000+8708.1886=0*10000+ 8708.1886 = 8708.1886

По первому вопросу - скорее всего у вас включен цифровой порт(в таком случае длина посылки увеличивается)

Хочу уточнить, в данном примере разбирается 11-й байт.
байт можно условно разделить на два полу байта по 4 бита. первая часть из 4 битов (может принимать значения от 0 до 15 в dec ) отвечает за количество 10000  градусов долготы, как вторую часть из 4 битов (правая) перевести в двоичный вид(до двух знаков) в два бита?
или чего-то не понимаю?