この C コードは負の数の絶対値を見つけようとしますが、出力も負になります。誰かがこれを克服する方法を教えてもらえますか?
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <inttypes.h>
int main() {
int64_t a = 0x8000000000000000;
a = llabs(a);
printf("%" PRId64 "\n", a);
return 0;
}
出力
-9223372036854775808
アップデート:
ご回答ありがとうございます。これが標準外の値であることを理解しています。そのため、絶対的な操作を行うことができません。ただし、遺伝的プログラミング シミュレーションである実際のコードベースでこれに遭遇しました。この「生物」はC標準について知らず、この値を生成することを主張します:)これを回避する効率的な方法を誰か教えてもらえますか? 再度、感謝します。