Java ByteBuffer getInt в python?

byte[] obyteArray = new byte[4];
String str = "testing";
try{
    obyteArray = str.getBytes("UTF-8");
}catch(java.io.UnsupportedEncodingException e){    
}
int vi1 = ByteBuffer.wrap(obyteArray).getInt();
System.out.println(vi1);

возвращает 1952805748

однако в py

elements = b"testing"
values = bytearray(elements)
print(int.from_bytes(values, 'big'))

возвращает 32762643847147111

Не совсем понятно, чего вы пытаетесь достичь. Я объяснил, почему вы не получаете таких же результатов в моем ответе, но если вам нужна дополнительная помощь, нам нужно знать проблему, которую вы пытаетесь решить. Java и Python — очень разные языки. Например, Python поддерживает целые числа произвольной точности, в то время как Java требует, чтобы вы использовали для этого BigInteger.

Jim Garrison 15.12.2020 00:56

Получил работу с информацией из вашего ответа :)

sleep 15.12.2020 01:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
514
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
    byte[] obyteArray = new byte[4];
    String str = "testing";
    try{
        obyteArray = str.getBytes("UTF-8");

После оператора выше исходный oByteArray отбрасывается, а oByteArray является ссылкой на другой 7-байтовый массив.

    }catch(java.io.UnsupportedEncodingException e){    
    }
    int vi1 = ByteBuffer.wrap(obyteArray).getInt();

vi1 теперь первые 4 байта ('test'), интерпретируемые как int.

    System.out.println(vi1);

вот почему результаты различаются.

Другие вопросы по теме