• ベストアンサー

stdint.hのint8_tとuint8_tについて

stdint.hのint8_tとuint8_tの 値のとりうる範囲は下記で合っていますでしょうか? ・int8_t   -128~127 ・uint8_t   0~255 「int8_tは最上位ビットが符号ビットで使われ、 uint8_tは最上位から最下位ビットまで全てを、 値を表現するために使える。」 という考えです。

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

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

正しいです。 int8_tはパディングビットが無く2の補数表現である8ビット幅の符号付き整数型のtypedefですから。 # ISO/IEC 9899:1999 7.18.1.1の第1段落 最小値,最大値は,マクロ INT8_MIN, INT8_MAX, UINT8_MAX というものがstdint.hのインクルードで定義されます。 # ISO/IEC 9899:1999 7.18.2.1 なので,limits.hのINT_MAXのようなマクロを使いたい場合,上記を使うことができます。 # 当然,INT16_MINやINT32_MAX,UINT64_MAXも,(対応する型があれば) 定義されます。

upanepa
質問者

お礼

ご回答ありがとうございます。 私の推測はあっているのですね ところで > # ISO/IEC 9899:1999 7.18.1.1の第1段落 とあるのは、ISOの資料内のものでしょうか? ISOのサイト内で検索してみたところ、それっぽい 資料は見つかりましたが、有料コンテンツのようでした。 http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=29237 見てみたいのですが、購入しないと、見れないものですか? 購入されたのでしょうか?

その他の回答 (2)

回答No.3

#2です。 > 見てみたいのですが、購入しないと、見れないものですか? > 購入されたのでしょうか? ISO/IEC 9899:1999というのは,標準Cの規格です。 この規格書は販売されているものなので,見るためには購入する必要があります。 ただ,まったく同等のINCITS/ISO/IEC 9899:1999がANSIのWebStoreにて$30で購入可能です。 http://webstore.ansi.org/FindStandards.aspx?SearchString=9899&SearchOption=0&PageNum=0 おそらく,購入可能なISO/IEC 9899 (または相当規格)の中で一番安いです (JISで買うと35185円)。 なお,同等の邦訳版JIS X 3010:2003は14280円です。 私はこちら (INCITS/ISO/IEC 9899:1999) を購入しています。 購入時期の関係でか,規格にINCITSの表示はありませんが。 なお,JIS X 3010:2003に関しては,日本工業標準調査会のサイト http://www.jisc.go.jp/ にて閲覧可能です。 ただし,閲覧専用な上,画像のみのPDFなので非常に使い勝手が悪かったりしますが。

upanepa
質問者

お礼

ご回答ありがとうございます。 参照URLを回ってみます。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

2進数8ビットで表現できる値としては合ってます。 あとは、対象としてる処理系でそのようにint8_t/uint8_tが定義されているかを実際に確認してください。

upanepa
質問者

補足

ご回答ありがとうございます。 質問があります。 > あとは、対象としてる処理系でそのようにint8_t/uint8_tが > 定義されているかを実際に確認してください。 stdint.hの中を見て、どの型がint8_t/uint_8にtypedefされて いるかを見ればよいのでしょうか? (例えばtypedef signed char int8_t; とあれば、質問内容の値の範囲と一致するような感じ)

関連するQ&A