0
我有以下代碼:表達式必須是列表類型錯誤?
public class Testcode {
private static final Long[] P = new Long[18];
public void setKey(string key)
{
integer i, j, k;
long data;
integer N = 16;
string[] keytemp = new string[]{};
keytemp.add(key);
// Initialize P and S.
for (i = 0; i < N + 2; ++i){
P[i] = Pinit[i];
}
// XOR the key into P.
j = 0;
for (i = 0; i < N + 2; ++i)
{
data = 0;
for (k = 0; k < 4; ++k)
{
data = (data << 8) | keytemp[j];
++j;
}
P[i] ^= data;
}
}
private static final long[] Pinit = new Long[] {
604135516L, 2242044355L, 320440478L , 57401183L,
2732047618L, 698298832L, 137296536L , 3964563569L,
1163258022L, 954160567L, 3193502383L, 887688400L,
3234508543L, 3380367581L, 1065660069L, 3041631479L,
2420952273L, 2306437331L
};
}
即時得到以下錯誤:
錯誤:編譯錯誤:OR操作者可以只在線路36列被應用到布爾表達式或整型或長的表達式18
這是在這一行:
data = (data << 8) | keytemp[j];
有另一種方式來寫這行代碼?
謝謝
好吧我犯了一個錯誤,關鍵必須是一個字符串,所以&或|不適用於字符串,不知道要使用什麼!,任何想法? – user2333346
我編輯了我原來的帖子,我有一個不同的錯誤,這行代碼在Java中是可以期待的,因爲我可以將密鑰定義爲一個字節,但是我不能在這裏這樣做。有沒有另外一種方法來編寫這行代碼? – user2333346