我想将unsigned char数组转换为jbytearray,将jbytearray转换为unsigned char数组。
这是我想要做的:
阶段1)
阶段2)
这是我的问题:
unsigned char的范围是0~256
和byte(在java中)-128~127
所以,尽管unsigned char和byte之间的转换有溢出,
阶段1)data1和phase2)data2是否正确相同而没有任何数据丢失?
在我看来,我用
记录了data1和data2__android_log_print("test", "data1 : %s", data1);
__android_log_print("test", "data2 : %s", data2);
他们看起来一样。
但是,我无法理解它看起来如何(即使溢出)。
并且假设它们是相同的,奇怪的是事情进展不顺利, 在其他逻辑.... (Data1用AES加密,我想解密Data2,与Data1相同)
离。
unsigned char data1[32] = { 250, 100, 230, 120, .......};
任务阶段1)2,3和阶段2)1,2,3
unsigned char data2[32] = { 250, 100, 230, 120, .......};
会一样吗?
如果这种方式错了,我该怎么办?
答案 0 :(得分:0)
你不应该担心。本质上,本机数组和jbyteArray之间的转换可以视为reinterpret_cast
。只要yiu不在Java和native之间混合算术运算,你就是安全的。