0
의 31 비트의 값을 읽는 것은 내 질문은는 32 비트 정수 한 방법의 31 일 비트 (MSB)를 읽기위한 32 비트 정수
int main(int argc, char *argv[]) {
int b =0x80005000;
if(b&(1<<31))
printf("bit is one\n");
else
printf("bit is zero\n");
return 0;
}
다음과 같이하고,이 작업을 수행하는 다른 최적의 방법이있다 명령어 사이클이 줄어든다.
필요한 마스크를 미리 정의하십시오. –
@LongSmith - 컴파일러가 너무 바보가 아니라고 가정하면 마스크는 미리 정의됩니다. – 4386427
최대 최적화 코드를 컴파일하고 생성 된 코드를 살펴 봤습니까? – 4386427