Добавление 2 гексадецималов в виде строк

Описание

Я пытаюсь получить данные для изображения decall для элемента Team Fortress 2 из пара http://forums.steampowered.com/forums/showthread.php?t=2695676

Используемые данные

атрибуты "attributes": [ { "defindex": 152, "value": 160020469, "float_value": 3.3154542658454145e-033 }, { "defindex": 227, "value": 142668139, "float_value": 7.7604768692394667e-034 }, { "defindex": 746, "value": 1065353216, "float_value": 1 }, { "defindex": 292, "value": 1115684864, "float_value": 64 }, { "defindex": 388, "value": 1115684864, "float_value": 64 } ] инвентаря "attributes": [ { "defindex": 152, "value": 160020469, "float_value": 3.3154542658454145e-033 }, { "defindex": 227, "value": 142668139, "float_value": 7.7604768692394667e-034 }, { "defindex": 746, "value": 1065353216, "float_value": 1 }, { "defindex": 292, "value": 1115684864, "float_value": 64 }, { "defindex": 388, "value": 1115684864, "float_value": 64 } ]

Мой скрипт

`

 function Function_BigDecimal_to_Hexadecimal_Converter($dec) { $hex = ''; do { $last = bcmod($dec, 16); $hex = dechex($last).$hex; $dec = bcdiv(bcsub($dec, $last), 16); } while($dec>0); return $hex; } function Function_BigHexadecimal_to_Decimal_Converter($hex) { $dec = 0; $len = strlen($hex); for ($i = 1; $i <= $len; $i++) { $dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i)))); } return $dec; } $hex1 = Function_BigDecimal_to_Hexadecimal_Converter('142668139' ); // data from defindex 227 $hex2 = Function_BigDecimal_to_Hexadecimal_Converter('160020469'); // data from defindex 152 echo 'hex1 ',$hex1,'<br>'; // = 880f16b echo 'hex2 ',$hex2,'<br>'; // = 989b7f5 $hex_append = $hex1.$hex2; echo 'hex_append ',$hex_append,'<br>'; // = 880f16b989b7f5 $ugcid = Function_BigHexadecimal_to_Decimal_Converter($hex_append); echo 'ugcid ',$ugcid,'<br>'; // = 38297187109156853 

`

Моя проблема

ожидаемое значение ucid должно быть 612754991346202613 и я получил 38297187109156853

Здесь я реверсирую этот код, чтобы получить hex_append от ожидаемого ответа

echo 'Reversed hex_append using expected answer '.Function_BigDecimal_to_Hexadecimal_Converter('612754991346202613');// = 880f16b0989b7f5

Вывод

Разница в hex_append, рассчитанная 880f16b989b7f5 и обратный ответ 880f16b0989b7f5 равна 0
Как я могу это исправить ?
Я предполагаю, что a 0 нужно добавлять иногда при добавлении 2 гексов в виде строк.
Эта проблема была обнаружена только для этого элемента.

Все эти php-коды будут скопированы в php-файл и выполнены