비트비교

idrukawa의 이미지

10000비트를 비교하려고 합니다.

char ori[1250];

이 ori는 총 10000비트로 이루어져 있을텐데요.
이 10000비트를 0인지 1인지 비교하려고 하는데 방법이 안떠올라서요

for(int i = 0 ; i < 10000 ; i++)
{
iCurrentBit = p10000Bit & (1 << i);

printf("%dth bit: %d\n", i, iCurrentBit);
// printf("%d", i, iCurrentBit);
}
이렇게 하니깐 컴파일도 안되요 ㅠ

도와주세요

binilpaper의 이미지

for( int i = 0; i < 1250; i++ )
{
if ( ori[ i ] == 0x00 ) continue;

for( int j = 0; j < 8; j++ )
if ( ( ori[ i ] & ( 1 << j ) ) > 0 )
printf("%dth bit is 1 ", ( i * 8 ) + j )
}

이런식 아니면... 인라인 어셈중 bsf 사용하셔두 되구요..

http://lxr.linux.no/linux+v3.0.4/include/linux/bitmap.h
http://lxr.linux.no/linux+v3.0.4/lib/bitmap.c

이거 참고하셔서 Bitmap 하셔두 될듯싶어요..

-----------------------------------------------------
세상은 인간이 해결해야할 문제들로 가득차 있다.