Я работаю в Android jni и хочу преобразовать беззнаковый длинный длинный C-тип данных в эквивалентную оболочку JNI. Какая должна быть эквивалентная обертка jni? Также, когда я напишу вызов функции JAVA, который вызовет jni-обертку, каков должен быть dataype параметра метода JAVA для этого неподписанного длинного длинного типа данных?Преобразовать неподписанный длинный длинный эквивалент jni datatype?
2
A
ответ
1
Java не знает без знака. Все числовые примитивы Java подписаны (blame Gosling). Если вам действительно понадобится транспортировать беззнаковый 64-битный диапазон по JNI (вам нужно [0,2^64]
не только [-2^63,2^63-1]
), тогда нет эквивалентной Java-оболочки, и вам нужно будет разложить значение (например, четыре байта и четыре байта). В противном случае вы можете использовать простой Java-примитив long (JNI jlong), так как он 64 бит, независимо от архитектуры процессора.
Смежные вопросы
- 1. неподписанный длинный конфликт с uint64_t?
- 2. Рубиновый эквивалент для C "подписан длинный длинный"
- 3. Как преобразовать длинный длинный массив в C?
- 4. Как вы получаете неподписанный длинный конец строки?
- 5. Длинный длинный тип defintion
- 6. длинный длинный ИНТ арифметика
- 7. Тип возврата (длинный + длинный)
- 8. JNI: Длинный объект, созданный с неправильным значением
- 9. Как вернуть 2D длинный массив с JNI
- 10. Как преобразовать длинный длинный в двоичную строку символов?
- 11. Как преобразовать длинный двойной в длинный int в c?
- 12. Может преобразовать дату в длинный, но длинный слишком большой?
- 13. Как преобразовать sqlite3_int64 в длинный?
- 14. Конвертировать длинный длинный в строку в C?
- 15. объединить байт в длинный длинный
- 16. оценки «длинный длинный ИНТ» в с
- 17. Как использовать Array.copy (массив, длинный, массивный, длинный, длинный) в C#
- 18. Лучше использовать длинный или длинный длинный в 64 бит
- 19. assertEquals проблемы (объект объекта) (длинный длинный)
- 20. Байт-своп массива байтов в длинный длинный
- 21. Длинный длинный int на 32-битных машинах
- 22. Размер мусора длинный длинный тип данных
- 23. как объявить длинный длинный массив в Java?
- 24. Проверьте, существует ли беззнаковый длинный длинный
- 25. проблематичен выход FMOD (длинный двойной, длинный двойной)
- 26. Поддерживает ли GCC длинный длинный int?
- 27. Arrays.copyOfRange (байт [], длинный, длинный)? в Java
- 28. Получить адрес памяти объекта как длинный/длинный?
- 29. Явный листинг указателя на длинный длинный
- 30. , которые компиляторы дают самый длинный длинный двойной
Мы пытаемся использовать byte [] для отправки и получения данных. Правильно ли это? – Harshad
Да, вы абсолютно можете использовать jbyteArray. Однако будьте осторожны, чтобы получить правду правды. JVM является большим эндизиатом, но вы не можете принять на себя сущность базового оборудования. Хотя это будет, скорее всего, низкоорбитанец, что в равной степени неудобно. Если есть сомнения, выполните арифметическое декомпозицию (то есть деление и по модулю на 0xFF) вместо того, чтобы просто вызывать байты по адресу. –
Если он ответил на ваш вопрос, подумайте о принятии и улучшении ставки. –