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(および唯一の0)のリストです。それを説明できるものは何ですか?不思議なことに、小さな数字でうまくいくようです。また、問題が書式にないことを喜んで、私は手動でk%4の連続した結果を常に0と比較して常に真実になります。
私はそれについて完全に忘れていました。私はk >> = 2を使用していたはずです。 – user2370139