私はビットバイナリ番号 (C言語で)の左に循環シフトを実装するアルゴリズムを探しています。 アルゴリズムは>>右のスロットはゼロではなく、左から数を移動して表示されます。円内での循環シフト
右にシフトします。
私はビットバイナリ番号 (C言語で)の左に循環シフトを実装するアルゴリズムを探しています。 アルゴリズムは>>右のスロットはゼロではなく、左から数を移動して表示されます。円内での循環シフト
右にシフトします。
ここで考えられるのは、上位nビット(nビットシフトの場合)とor
の場合のシフトされた番号の右側です。
これはあなたにスタートを与えるはずです。
これは真実ですが、どのようにして上位nビットと1ビットを右に取りますか? –
@Rudy:右シフトを使用する –
はい、それは明らかです。それでも、人々にビットをマスクする方法やシフトする方法などは教えていません。 –
#define NUM_BITS_IN_INT ((sizeof(int) * 8)
int rotleft(int num, int shift)
{
return (num << shift) | (num >> (NUM_BITS_IN_INT - shift));
}
int rotright(int num, int shift)
{
return (num >> shift) | (num << (NUM_BITS_IN_INT - shift);
}
ここでの質問は何ですか?あなたは何を試しましたか? Stack Overflowは、プログラミングに関する特定の問題を議論するためのウェブサイトです。 「無料コードサービス」ではありません。それがあなたが探しているものなら、他の場所を見てください。 –
可能な複製[単語のビットを回転する方法](http://stackoverflow.com/questions/4207546/how-to-rotate-the-bits-in-a-word) – zneak
可能な複製のhttp:/ /tackoverflow.com/questions/2943265/circular-shift-c –