6バイト長の符号なしcharがあります。文字の中に保存されている 値は次のとおりです。私がする必要がどのようなビット1と6、Cの符号なしの文字で2〜5グラブビット
Hex: 53167DFD95B7
Binary: 010100 110001 011001 111101 111111 011001 010110 110111
はキャプチャビット1とビット6は、次に小数にそれを変換しています。その後、ビット2-5をキャプチャして小数点に変換します たとえば、ビット1は0、ビット6は0、したがってバイナリ00は10進数です。次にビット2-5、バイナリ1010、または10進数10の場合次の6ビットのグループに割り当てる。
ビット1、ビット6がそうバイナリ11、または小数3 ビット2-5は、バイナリ1000、または小数8
ビット1は、ビット6が1であり、0であるので、バイナリ01、1、1 、または小数1 ビット2-5は、バイナリ1100または小数です。12
その他の6ビットグループについても同様です。
私はどのように私がマスキングする必要がありますか、これをシフトしています。これは一度に6ビットしかないので、私はいくつかの困難を抱えています。これについてのどんな助けも大いに感謝されるでしょう!あらかじめありがとうございます。
私はループの最後で推測する6ビットで
int getBitVal(unsigned char *keyStrBin, int keyIndex) {
int keyMod = keyIndex % 8;
int keyIn = keyIndex/8;
return (((keyStrBin[keyIn]) >> (7 - (keyMod))) & 1);
}
void getSValueMajor(char **tableS, unsigned char *f, unsigned char *sValue) {
int i, bitOne, bitSix;
int sCol;
for (i = 0; i < 8; i++) {
bitOne = getBitVal(f, 0);
bitSix = getBitVal(f, 5);
// Do something here to get only bits 2-5. Doesn't matter if its decimal. Just need the 4 bits.
}
}
病気シフトは次の6ビットに行くEDITが、変数にそれらの4ビットを読み出す方法がわかりません。
関連します。http:/ /stackoverflow.com/questions/47981/how-do-you-set-clear-and-togglea-a-single-bit-in-cc?rq=1 –
これはDESアルゴリズムの香りがあります。 – WhozCraig
確かに。それは学校のプロジェクトのためです。 – TyrantUT