1. ホーム
  2. objective-c

[解決済み] なぜC言語では1,000,000,000を1000*1000*1000と書くのですか?

2022-05-12 20:11:12

質問

Appleが作成したコードの中に、次のような行があります。

CMTimeMakeWithSeconds( newDurationSeconds, 1000*1000*1000 )

を表現する理由はあるのでしょうか? 1,000,000,000 として 1000*1000*1000 ?

なぜ 1000^3 を使えばいいのでしょうか?

どのように解決するのですか?

定数を乗法で宣言する理由の一つは、実行時の性能に影響を与えない一方で、可読性を向上させるためです。 また、書き手が数について乗法的な方法で考えていたことを示すためでもあります。

これを考えてみましょう。

double memoryBytes = 1024 * 1024 * 1024;

よりは明らかに良い。

double memoryBytes = 1073741824;

は、一見すると1024の3乗には見えないので

Amin Negm-Awad が言及したように ^ 演算子は二項演算子である XOR . 多くの言語にはコンパイル時の指数演算子が組み込まれていないため、乗算となります。