Насколько я понимаю, Java MAX_LONG - 9223372036854775807, но это потому, что он подписан. беззнаковое 64-битное число может быть намного больше, чем это. Я подозреваю, что должен использовать BigInteger, но как мне перейти от BigInteger к 64-битному без знака и обратно?
Что именно вы имеете в виду, переходя от BigInteger к 64-битному без знака и обратно?
У меня 64-разрядное число без знака, поступающее в байтовый буфер с прямым порядком байтов. Допустим, это Long.MAX_VALUE + 1 или 9223372036854775808. Я не могу хранить это на лонге, поэтому оно должно входить внутрь BigInteger. Тогда я должен сделать обратное. У меня есть 64-битное число без знака в BigInteger, и я должен записать в ByteBuffer.