私は購入したテキストブックで自分自身を教えています。一般的にはこれはかなり簡単ですが、私が把握していないエリアはビット操作に簡単に関係します。私は、文字通り(隔離された)意味での演算子の利用を理解していますが、以下の特定の文脈でそれがどのように適用されるかはわかりません。c - decryptionにおけるビット操作/操作
ここでは、いくつかの解読アルゴリズムのコンテキストでどのように/何をしているのか把握できなかった2つの例があります。
私が探しているのはすべて、16進数とビットシフト/左右が一緒にやっていることを説明するビットです。
オンラインで見ているほとんどの例は、孤立した意味であり、これまでのところ、このシナリオでどのように適用されているのかは分かりません。
誰かが推薦できるビット操作/操作に特有の教科書があれば、私はそのような情報に投資したいと思うでしょう。これは本当にこれを釘付けにする私の決意です(私は何かを完全に把握せずに動くのが嫌いです)。
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は、32ビットの長さを満たすために0で埋め込まれた同じキーです。 – xxdefaultxx
'unsigned char'配列か' char'だけですか? – owacoder