我正在教我自己c與我已購買的一些教科書。一般來說,這很容易,但是我不太容易理解的一個這樣的領域涉及位操作。我理解字面(孤立)意義上的操作符的使用,但不是它們如何應用於下面的特定上下文中。c - 解密中的位操作/操作
下面有2個這樣的例子,我沒有能夠掌握他們在一些解密算法中如何/做些什麼。
所有即時通訊尋找的是一個解釋什麼是十六進制和位移/左右將一起做。
我一直在網上查看的大多數例子都是孤立的,至今尚未陷入這種情況如何應用。
如果有任何人都可以推薦的位操作/操作的教科書,我也願意投資於這些信息。這是我的決心,真的要指出這一點(我討厭繼續前進,沒有完全掌握一些東西)。
unsigned long lBits = 0;
lBits = ((unsigned long)(key[28] & 0xFFFF)<< 24)|
((unsigned long)(key[29] & 0xFFFF)<< 16)|
((unsigned long)(key[30] & 0xFFFF)<< 8)|
((unsigned long)(key[31] & 0xFFFF));
...
for(i=0; i < max_length ; i++){
unsigned long tBits = lBits | i;
tkey[28] = (unsigned char) (tBits >> 24);
tkey[29] = (unsigned char) (tBits >> 16);
tkey[30] = (unsigned char) (tBits >> 8);
tkey[31] = (unsigned char) (tBits);
你還沒有提供'key'和'tkey'聲明。 – owacoder
是的,我期待削減我發佈的代碼量,因爲這個例子很長。 key是通過作爲32位密鑰的一部分的命令行傳入的char數組arg,tkey是用0填充以滿足32位長度的相同密鑰。 – xxdefaultxx
它是一個'unsigned char'數組,還是'char'? – owacoder