• ベストアンサー
  • 困ってます

変数の型でlong longとunsigned long longと言うのは何ですか?

  • 質問No.56545
  • 閲覧数768
  • ありがとう数3
  • 回答数3

お礼率 47% (17/36)

教えていただきたいのですが、変数の型にlong longやunsigned long long
なるものがあると聞いたのですが、どのようなものでしょうか?
また、どのように宣言するのでしょうか?通常のlongなどと同じ要領で宣言し
てやれば良いのでしょうか?
もし、この型がある場合に、制約はあるのでしょうか?Unixでしか使えないとか
の制約等ありましたらぜひ教えてください。
お願いいたします。

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 37% (570/1525)

long longはANSI-Cの新しい改訂版C99で正式に採用されました。
C99以前のANSI-C対応処理系では独自拡張(gccなど)です。
環境の指定が無いので独自拡張は無視してANS-C99について解答します。

long longまたはlong long int=64ビット符号付き整数
unsigned long longまたはunsigned long long int=64ビット符号無し整数

定数の場合はLL(=long long)またはLLU(=unsigned long long)を付加する。
LL,LLU小文字でもよい。
1LL,0LL,100000000000lluなど

long long系の整数使うライブラリ関数について
・printf/scanf系書式の追加
%lld(=long long) および%llu(=unsigned long long)
・その他ライブラリ関数
文字列整数化:strtollが用意される。

現状では日本語で読めるC99の包括的な資料は存在しません。
英語版で良ければC99のドラフトが参考URLで読むことができます。

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 30% (25/83)

long long も unsigned long long も新しく追加された型です。
long long:64bit -9223372036854775808~9223372036854775807
unsigned long long:64bit 0~18446744073709551615
という型で64bitであること以外は他の型とshortやlongなどと同じように演算に使用できます。
ただし、新しい型ですので、従来のコンパイラでは対応していない場合が考えられます。
補足コメント
peacenik

お礼率 47% (17/36)

ありがとうございます。
longやshortと同じ用に使用できると言う事ですが、printfなどを使用して
表示したり、sprintfなどを使用する場合はどのようにしたら良いでしょうか?
書式制御文字が分かりません。
あと、atol()やltoa()などの関数を使用する場合などでは、ライブラリなど
新しいものが要るのでしょうか?
投稿日時:2001/03/27 12:00
  • 回答No.1

ベストアンサー率 42% (80/189)

こんにちは.
下記のサイトを参考にすると,よくわかると思います.
unsignedとは正の整数ということです.
お礼コメント
peacenik

お礼率 47% (17/36)

ありがとうございます。
早速確認します。
いろいろと勉強してきます。
投稿日時:2001/03/27 15:05
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ