2

どうやら、8ビットバイトを持たないアーキテクチャがあります。

私の理解では、Cは。よりも小さいデータ型を作成できないため、このようなアーキテクチャではint8_t(で定義された)型の存在が妨げられるように思われます。stdint.hCHAR_BIT

とは言うものの、IEEE stdint.h defは、そのようなタイプが(他のものとともに)存在することを要求しているようであり、64ビットがそれをサポートしないアーキテクチャーに存在しないことを許可するだけです。

私は何かが足りないのですか?

4

2 に答える 2

4

編集:@JasonDが以下のコメントで指摘しているように、リンクされたページは最後に述べています。

int8_tを追加した結果、次のことが当てはまります。

  • 1バイトは正確に8ビットです。

  • {CHAR_BIT}の値は8、{SCHAR_MAX}の値は127、{SCHAR_MIN}の値は-128、{UCHAR_MAX}の値は255です。

つまり、リンクされたIEEEページは、バイト長が8以外のアーキテクチャには適用されません。これは、8ビット文字を必要とするPOSIXと一致しています。

-編集前-

説明は、リンク先のページ のメモにあります。

整数型の「幅」は、その値を純粋なバイナリシステムに格納するために使用されるビット数です。実際のタイプはそれよりも多くのビットを使用する場合があります(たとえば、28ビットタイプは32ビットの実際のストレージに格納できます)

于 2013-03-11T10:26:40.257 に答える
1

アーキテクチャが8ビットバイトをネイティブに処理しないからといって、正確な8ビット整数型を排除するものではありません。算術演算は、より広いレジスタのシフトとマスクを使用して処理し、8ビット演算を「エミュレート」することができます。

于 2013-03-11T10:29:01.893 に答える