안녕하세요 길이를 알고 있는 임의의 데이터형에 대해 n번째 비트의 값이 어떻게 되는지(0 or 1)를 리턴하는 함수를 짜고 싶은데요. 비트연산자 몇개만을 대충 알고 있는 저로서는 어떻게 접근해야 할지 난감하네요.
n번째 비트의 값을 알아내는 것과 더불어 그 값을 임의로 조정하는 것까지, 대략의 C코드를 가르쳐주시면 감사하겠습니다.
즐거운 한가위 되세요~
음.. 대략 생가을 해보시면 될듯 한 질문인거 같지만서도..
일단 구체적인 타입이 나와 있지 않는 상태에서 답하자면 ( 질문하신 이유가 기본자료형에 속하지 않나 보군요 .. 이건 추측입니다)
일단 기본 자료형으로 매핑가능하면 합니다. 그리고 그 변수에 대해 매핑한 이름이 int *a 라면 ( 매핑할때 인디언을 고려해야 합니다. )
int 변수의 14번째(0 번째부터 순을 따져서)가 해당 비트이다라고 한다면
if ( (*a) & (1 << 14)) { ...blabla; }
만약 자주 사용되고 어셈의 사용이 가능하다면 어셈으로 짜는게 더욱 좋습니다.
함수보다는 매크로가 좋을듯 하네요.
screen + vim + ctags 좋아요~
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
음.. 대략 생가을 해보시면 될듯 한 질문인거 같지만서도..일단
음.. 대략 생가을 해보시면 될듯 한 질문인거 같지만서도..
일단 구체적인 타입이 나와 있지 않는 상태에서 답하자면
( 질문하신 이유가 기본자료형에 속하지 않나 보군요 .. 이건 추측입니다)
일단 기본 자료형으로 매핑가능하면 합니다.
그리고 그 변수에 대해 매핑한 이름이 int *a 라면
( 매핑할때 인디언을 고려해야 합니다. )
int 변수의 14번째(0 번째부터 순을 따져서)가 해당 비트이다라고 한다면
만약 자주 사용되고 어셈의 사용이 가능하다면 어셈으로
짜는게 더욱 좋습니다.
함수보다는 매크로가 좋을듯 하네요.
screen + vim + ctags 좋아요~
댓글 달기