Почему получаются разные значения при преобразовании
var bytes = new byte[]{-60, 86, 47};
System.out.println(new BigInteger(bytes).toString(16));

var bytes1 = new byte[]{-60, 86, 47};
System.out.println(new BigInteger(1, bytes).toString(16));

Результат:
-3ba9d1
c4562f

Поясни как это работает?