|
|
|
|
|
|
T*****9 发帖数: 2484 | 1 我是Java盲,大家随便取笑我啊
如果在C里面一个char 数组 char A[20];
想每4个字节进行运算,可以定义一个int的指针 int *B = (int *)A;
但是在Java里面好像不行,如果我有数组byte[] A;长度是20
想每4个字节进行运算,我目前是这样,定义一个长度是5的数组int[] Acopy;然后把A
里面的每4位计算成Acopy里的,对Acopy进行计算,最后再把Acopy的值成A
需要加两个函数 transfer_bytearray_to_intarray和transfer_intarray_to_
bytearray
请问各位Java大牛有什么好办法可以不进行这两个转换? | s***e 发帖数: 122 | 2 Java里面必须要这个转换,通过<<, >>>, | 以及&操作符来转换。
另外即使在C里面你的int *B = (int *)A也是不确定的,根据little-endian/big-
endian不同而不同,也应该使用位操作符。
A
【在 T*****9 的大作中提到】 : 我是Java盲,大家随便取笑我啊 : 如果在C里面一个char 数组 char A[20]; : 想每4个字节进行运算,可以定义一个int的指针 int *B = (int *)A; : 但是在Java里面好像不行,如果我有数组byte[] A;长度是20 : 想每4个字节进行运算,我目前是这样,定义一个长度是5的数组int[] Acopy;然后把A : 里面的每4位计算成Acopy里的,对Acopy进行计算,最后再把Acopy的值成A : 需要加两个函数 transfer_bytearray_to_intarray和transfer_intarray_to_ : bytearray : 请问各位Java大牛有什么好办法可以不进行这两个转换?
|
|
|
|
|
|