and演算での剰余演算


#include <stdio.h>
void main()
{
 int i;
 for ( i=0; i<16; i++ ) printf( "%d ", i % 2 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i & 1 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i % 4 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i & 3 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i % 8 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i & 7 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i % 16 );
 printf( "\n" );
 for ( i=0; i<16; i++ ) printf( "%d ", i & 15 );
 printf( "\n" );
}


実行結果

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15


i % (n2) は i & (n2-1) と同じである。
C > 演算 | comments (0) | trackbacks (0)