2016-09-20 6 views
-4

-2~127~(2^127)-1の範囲で2つの数値を追加できるCプログラミングでデータ型を作成する方法を教えてください。下記のようにcでユーザ定義のデータ型を作成するには?

ありがとうございました。

+0

あなたはどう思いますか?このデータ型はどれくらいの大きさですか? –

+1

もしあなたがまだそれをしていないのであれば、[ヘルプページ](http://stackoverflow.com/help)、特に[ここではどのような話題について聞くことができますか? http://stackoverflow.com/help/on-topic)と[[どのような種類の質問を避けるべきですか?]](http://stackoverflow.com/help/dont-ask)を参照してください。また、[良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)を読んで[最小限の、完全で検証可能な例]を作成する方法を学んでください(http:// stackoverflow .com/help/mcve)。 –

+0

あなたは何を計算しようとしていますか? – rak007

答えて

0

範囲に負の整数が含まれているため、符号付き数値が必要です。 C標準が指定する最大符号付き整数 は、long long int(ISO C99標準で導入されました。https://en.wikipedia.org/wiki/C_data_typesを参照)です。

標準では、少なくとも の数値を - (2^63-1)〜2^63-1の範囲で保持できることを規定しています。 ハードウェアでこのデータ型を実装する一般的な方法-2^63〜2^63-1の正確な範囲を与える64ビットの2の補数整数を使用することです。これはあなたの必要に応じて小さすぎる ですので、非標準のデータ型を使用するか、独自のデータ型を作成する必要があります。

幸いにも、gccコンパイラとclangコンパイラの両方で、 符号付き整数データ型があります。これは__int128_tと呼ばれます。私はこのタイプの範囲では の指定を見つけることができませんでしたが、実際には-2^127〜2^127-1とすることができます。このデータ型は、桁上げが発生した場合を除いて、指定した範囲の を追加で処理できます(https://en.wikipedia.org/wiki/Carry_(arithmetic)参照)。

関連する問題