Если у вас на входе целое 2х байтовое беззнаковое, то 1. При преобразовании в четырехбайтовое знаковое надо заполнить старшие байты нулями 2. При преобразовании сначала в знаковое (просто меняется статус этих двух байтов), потом преобразование в лонг - старшие байты заполняются знаком. Пример: возьмем число 0x8000 В первом случае будет получено 0x00008000 Во втором случае 0xFFFF8000 Как говорится - ощутите разницу :)