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
Получил работу с информацией из вашего ответа :)
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);
вот почему результаты различаются.
Не совсем понятно, чего вы пытаетесь достичь. Я объяснил, почему вы не получаете таких же результатов в моем ответе, но если вам нужна дополнительная помощь, нам нужно знать проблему, которую вы пытаетесь решить. Java и Python — очень разные языки. Например, Python поддерживает целые числа произвольной точности, в то время как Java требует, чтобы вы использовали для этого
BigInteger
.