私の知る限り、64 ビット コンパイラでは (コンパイラによって異なります) unsigned long long の最大サイズは、たとえば18446744073709551615ullのようになる可能性があるため、.c プログラムが必要なときに、リテラルを検索して-1ulに置き換えようとしました32ビットコンパイラによってコンパイルされ、2 ^ 64に等しく、すべての64ビットが1だったので機能したため、32ビットでの表現は-1ulでした(2の補数に基づいていると思います)
しかし、それは 2^(64-1) であるため、No . 9223372036854775808ullについて疑問に思っていましたが、32 ビット リテラルはどうなるでしょうか。-2ulまたは1ul????
この変換プロセスを説明できる人はいますか? なんとなく迷った…
アミール