プロが教えるわが家の防犯対策術!

stdint.hのint8_tとuint8_tの
値のとりうる範囲は下記で合っていますでしょうか?

・int8_t
  -128~127

・uint8_t
  0~255

「int8_tは最上位ビットが符号ビットで使われ、
uint8_tは最上位から最下位ビットまで全てを、
値を表現するために使える。」
という考えです。

A 回答 (3件)

正しいです。


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も,(対応する型があれば) 定義されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

私の推測はあっているのですね

ところで
> # ISO/IEC 9899:1999 7.18.1.1の第1段落
とあるのは、ISOの資料内のものでしょうか?

ISOのサイト内で検索してみたところ、それっぽい
資料は見つかりましたが、有料コンテンツのようでした。
http://www.iso.org/iso/iso_catalogue/catalogue_t …

見てみたいのですが、購入しないと、見れないものですか?
購入されたのでしょうか?

お礼日時:2008/03/09 11:04

#2です。



> 見てみたいのですが、購入しないと、見れないものですか?
> 購入されたのでしょうか?

ISO/IEC 9899:1999というのは,標準Cの規格です。
この規格書は販売されているものなので,見るためには購入する必要があります。
ただ,まったく同等のINCITS/ISO/IEC 9899:1999がANSIのWebStoreにて$30で購入可能です。
http://webstore.ansi.org/FindStandards.aspx?Sear …
おそらく,購入可能な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なので非常に使い勝手が悪かったりしますが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/03/15 10:17

2進数8ビットで表現できる値としては合ってます。



あとは、対象としてる処理系でそのようにint8_t/uint8_tが定義されているかを実際に確認してください。

この回答への補足

ご回答ありがとうございます。
質問があります。

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

補足日時:2008/03/08 12:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!