異なるCpuは異なる整数データ型をサポートします。 通常、ハードウェアは符号付き型と符号なし型の両方をサポートしますが、幅は小さく固定されています。
上記の表は、一般的なプロセッサによってハードウェアでサポートされている整数型の幅の一覧です。 高レベルのプログラミング言語の提供も可能です。 最も大きいハードウェア支えられたタイプ倍のビットを持つ’二重幅’の必要なタイプを持つことは共通である。, 多くの言語には、ビットフィールド型(指定されたビット数、通常はハードウェアがサポートする最大幅よりも小さくなるように制限されています)と範囲型(指定された範囲内の整数のみを表現できます)もあります。
Lisp、Smalltalk、REXX、Haskell、Python、Rakuなどの一部の言語は、任意の精度の整数(無限精度の整数またはbignumとも呼ばれます)をサポートしています。, この概念をトップレベル構造としてサポートしていない他の言語では、JavaのBigIntegerクラスやPerlの”bigint”パッケージなど、より小さな変数の配列を使用して非常に大きな数を表現するためのライブラリがあるかもしれません。 しかし、コンピュータはストレージの有限量しか持っていないので、彼らはあまりにも数学的整数の有限のサブセットを表すことができます。 例えば、一キロバイトのメモリを使用して、小数点以下2466桁までの数値を格納することができます。,
ブール型またはフラグ型は、通常、それぞれfalseとtrueで識別される0と1の二つの値のみを表すことができる型です。 このタイプは単一ビットを使用してメモリに格納できますが、アドレス指定とアクセス速度の便宜のためにフルバイトが与えられることがよくあ
四ビットの量は、ニブル(食べるとき、一口よりも小さい)またはナイブル(単語バイトの形のしゃれである)として知られています。 一つのニブルは十六進の一桁に対応し、二進符号化小数点の一桁または符号コードを保持します。,
Bytes and octetsEdit
バイトという用語は、当初は”メモリの最小アドレス指定可能な単位”を意味していました。 過去には, 5-, 6-, 7-, 8-, そして、9ビットバイトはすべて使用されています。 また、個々のビットをアドレス指定できるコンピュータ(”ビットアドレス指定マシン”)や、16ビットまたは32ビットの量しかアドレス指定できないコンピュータ(”ワー 同期バイトは、通常、使われていない接続スイッチをオフにし、語りにつながります。
オクテットという用語は、常に8ビットの量を指します。, これは、主分野で使用されるコンピュータネットワーク、コンピュータの異なるバイトの幅がしてます。
現代の使用法では、他のすべてのサイズが廃用になったので、byteはほとんど常に八つのビットを意味します。
WordsEdit
実質的にすべての新しいデスクトッププロセッサは64ビットワードを使用できますが、8ビットワードサイズと16ビットワードサイズの組み込みプロセッサは依然として一般的です。 36ビットのワード長は、コンピュータの初期の時代に一般的でした。,
ソフトウェアの移植性がない重要な原因の一つは、すべてのコンピュータがプログラマが使用するコンピュータと同じワードサイズを持つという誤っ たとえば、C言語を使用しているプログラマが215-1より大きい値を格納するために使用される変数をintとして誤って宣言した場合、16ビット整数のコンピュータではプログラムは失敗します。 その変数はlongとして宣言されている必要があり、どのコンピュータでも少なくとも32ビットです。, プログラマーはまた、ポインタが情報を失うことなく整数に変換できると誤って仮定することがあり、(一部の)32ビットコンピュータでは動作するが、64ビットポインタと32ビット整数を持つ64ビットコンピュータでは失敗する可能性がある。 この問題は、stdintのC99によって解決されます。intptr_t
の形式のh。
Short integerEdit
短い整数は、同じマシン上の標準整数と比較して、ストレージが少なく、範囲が小さい整数を表すことができます。
Cでは、shortで表されます。, 少なくとも16ビットであることが必要であり、多くの場合、標準の整数よりも小さいが、これは必須ではない。 適合するプログラムは、−(215-1)と215-1の間の値を安全に格納できると想定できますが、範囲が大きくないと想定できない場合があります。 Javaでは、shortは常に16ビット整数です。 Windows APIでは、SHORTデータ型はすべてのマシンで16ビット符号付き整数として定義されています。,>−32,768
Long integerEdit
A long integer can represent a whole integer whose range is greater than or equal to that of a standard integer on the same machine.,
Cでは、longで表されます。 少なくとも32ビットであることが必要であり、標準整数よりも大きい場合とそうでない場合があります。 適合するプログラムは、−(231-1)と231-1の間の値を安全に格納できると仮定できますが、範囲が大きくないと仮定できない場合があります。
Long longEdit
Cプログラミング言語のC99バージョンおよびC++11バージョンのC++では、long long
タイプがサポートされており、標準のlong
の最小容量 この型は、c++03にはlong long型が存在しなかったため、cコードが以前のc++標準C++03に準拠する必要があるコンパイラではサポートされていません。 ANSI/ISO準拠のコンパイラでは、指定された範囲の最小要件、つまり、符号付きの場合は−(263-1)から263-1、符号なしの場合は0から264-1を満たす必要がありますが、この範囲を拡張することは許可されています。, この課題をやり取りする際にコードとデータプラットフォーム間となることが直接ハードウェアです。 このため、複数セットのヘッダを提供するプラットフォーム非依存の正幅。 C標準ライブラリはstdintを提供します。これはC99およびC++11で導入されました。