0
이 간단한 프로그램을 고려하십시오. 목표는 마지막 2 비트 (0,1,2 ou 3 표시), 다음 2 비트 등을 인쇄하는 것입니다.계수 연산자가 uint_fast64_t로 작동하지 않습니다.
#include <iostream>
using namespace std;
inline void test(uint_fast64_t k) {
for (int i=0; i<32; i++) {
cout << k%4 << endl;
k>>2;
}
}
int main() {
test(77968641563295808);
return 0;
}
출력은 부조리 인 0의 목록입니다. 그게 뭐라 설명 할 수 있니? 이상하게도, 그것은 작은 숫자로 잘 작동하는 것처럼 보입니다. 또한 문제가 형식화되지 않았 음을 염두에두고 필자는 k % 4의 연속 결과를 항상 0과 비교하여 항상 참이되게했습니다.
완전히 잊어 버렸습니다. k >> = 2를 사용해야했습니다. – user2370139