类型字节与字节[]的按位运算

时间:2016-04-17 18:04:29

标签: java types byte bitwise-operators encryption-symmetric

以下是我正在使用的代码:

byte[] encodedBytes1 = null;
byte[] encodedBytes2 = null;
try {
    Cipher c = Cipher.getInstance(encryptationMode);
    c.init(Cipher.ENCRYPT_MODE, key);
    encodedBytes1 = c.doFinal(TestText1.getBytes());
    encodedBytes2 = c.doFinal(TestText2.getBytes());
} catch (Exception e) {
    //Log.e(TAG, "AES encryption error");
}
byte[] encodedHomo = null;
boolean encoded1_2 = TestText1.getBytes() || TestText2.getBytes();

因此,我尝试对encodedBytes1encodedBytes2执行按位操作,并创建新值encodedHomo(我的项目是AES算法的同态加密)。为什么我不能对类型byte[]执行按位运算操作? bytebyte[]类型之间的区别是什么?

3 个答案:

答案 0 :(得分:0)

如果要在两个字节数组之间进行按位OR,则需要为每个字节执行此操作。

byte

注意:两个byte[]或两个|没有byte次操作。<!--- badges.html --> <ul> {% for badge in badges %} <li> {{ badge }} </li> {% endfor %} </ul> 只有show_badges

答案 1 :(得分:-1)

按位运算对原始数据类型起作用,数组不是原始数据类型。

例如,按位OR运算对数字具有良好定义的行为,但对于复合对象(不仅仅是'由位'组成)不具有明确定义的行为。

答案 2 :(得分:-1)

Java不是C.你的byte[]对象不是指向很多位的指针。

您必须在byte s中的每个 byte[]上进行按位操作。