문제
지시가 주름/A int
내로 int[32]
저장 그것의 첫 번째 비트를 추출하는 것이 존재 하는가?는 정수 배열에서 첫 번째 비트를 추출/수집
본래의
pext
에 대해 알고 있지만 그것은 내가 원하는 것만은 아닙니다.나는 코드가 있지만 어쩌면 거기에 지정된 명령이 있다고 생각합니다.
ints
배열은 첫 번째 비트 외에도 0입니다. 에르고, 가면이 필요하지 않아.
코드
void ints2bits(int &bits, int *ints) {
bits = (ints[0] << 0) + (ints[1] << 1) + ... + (ints[31] << 31);
}
UPDATE & 피드백 :
그냥 테스트 해롤드 제안. 그것은 아주 잘 작동하고 좋은 속도를 얻을 수 있습니다.
배열의 31 개 정수 중 첫 번째 비트를 추출하여 int의 적절한 위치에 비트를 저장하려면 코드가 잘못되었습니다. – sameerkn
잘못이 아닙니다. 나는 그것을 문자 그대로 사용한다. 문제는이 작업에 대한 구체적인 지침이있는 경우에만 해당됩니다. 도중에 배열의 마스킹이 필요하지 않을 수 있습니다. 이는 아마도 그 결함을 주장하는 이유 일 수 있습니다. –
코드에서는 int의 다른 모든 비트가 0이라고 가정하므로 문제 사양에 명시 적으로 명시해야합니다. – samgak