Здравствуйте. Нужна помощь. Спойлер: Код Код (Text): <?php $text = "2,37,35,30,30,38,33,43,43,33,31,30,42,3"; //Получаемый текст $arr_code = explode(",", $text);//Массив байт $count_arr = count($arr_code);//Число элементов в массиве /* HEX(37)= CHR(7), HEX(35)= CHR(5)...ASCII*/ function hex2str($hex) { $str = ''; for($i=0;$i<strlen($hex);$i+=2) $str .= chr(hexdec(substr($hex,$i,2))); return $str; } $arr_chr=[];//Массив CHR for ($i = 0; $i <= $count_arr; $i++) { $arr_chr[$i] = hex2str($arr_code[$i]); echo $arr_chr[$i]; } echo "<br>"; for ($i = 3; $i <= 6; $i++) { $series =$series. $arr_chr[$i]; } for ($i = 7; $i <= 10; $i++) { $number =$number. $arr_chr[$i]; } $check_sum = $arr_chr[11].$arr_chr[12]; echo "Серия: ".hexdec($series); echo "<br>"; echo "Номер: ".hexdec($number); echo "<br>"; echo "Контрольная сумма: ".hexdec($check_sum); echo "<br>"; ?> 750083CC310B Серия: 131 Номер: 52273 Контрольная сумма: 11 0B - это контрольная сумма (11) 37 35 30 30 38 33 43 43 33 31 через XOR дают 0x0B Как это посчитать в коде?
Добрый день! это в коде PHP: <? $str = "37353030383343433331"; $checksum = $str[0]; $i = strlen($str); while (--$i) $checksum ^= $str[$i]; #################################### $decimal = ord($checksum); $hex = strtoupper(str_pad(dechex($decimal), 2, 0, STR_PAD_LEFT)); echo "checksum decimal: ", $decimal, " hex: ", $hex; /* checksum decimal: 11 hex: 0B */ ?> Удачи!