整数型
整数型（せいすうがた）は、コンピュータのプログラムなどのデータ型の1つまたは1群であり、整数を取り扱う。コンピュータで扱うもっとも単純な部類のデータ型のひとつである。C言語やJavaなどの多くのプログラミング言語では、整数型は固定長であり、その固定サイズで表現可能な範囲の、整数の有限な部分集合の要素を値とする型である。また多くの言語において、標準あるいは第三者によるライブラリにより、範囲に制限のない整数も扱うことができる。
パスカルによる機械式計算機などが数をその処理の対象としていたことを考えれば、計算機械の歴史において、整数を扱うことはコンピュータ以前からの存在である。
データ型としての整数とは無関係に（どんな種類の整数型であっても）、数値的に言えることとして、任意の実数から4捨5入で端数処理した場合の絶対精度は ±0.5 であり、相対精度はその値を x とすると ±0.5/x である。固定長の場合は表現可能な値の範囲に制限がある。精度に関しては「正確度と精度」の記事も参照。
多くのプログラミング言語における組み込みの整数型は固定長であり、通例8ビット、16ビット、32ビット、64ビットといった、8の倍数のビット幅を持つ。また、C言語のcodice_1型は処理系依存となっており、レジスタのワード幅などに合わせたサイズがよく用いられる。多くの場合、目的に合わせて、いくつかの固定長サイズの整数型がある（後述）。
一方、整数の任意の値を扱うことができる、可変長の整数というものもある。一般にプロセッサが直接扱うことはできないため、C言語ではライブラリを利用する。言語仕様としてそのようなデータ型が用意されている言語もあり、一部の言語では計算結果に応じてシームレスに固定長と切り替わる（プログラマからは隠蔽されている）。大きい数を扱えることから BigNum あるいは整数であることを示す BigInt、日本語では多倍長などといった名前で呼ばれている。任意精度演算の記事も参照のこと。
正負両方の整数を表せる符号あり整数型と、非負（0または正）の整数だけを表せる符号なし整数型とがある。固定長では、符号あり整数型は、負数を表せるかわりに、表せる値の範囲の約半分が負の側に移動する。
符号なし整数は、ビットの並びをそのまま数値として解釈するが、符号あり整数では、負の値の表現方法にいくつか種類が存在する。また、「グレイコード」など、ビットの並びをそのまま数値として解釈するのではない整数の表現法もいくつもある。
可変長の整数型は任意の長さとなる。固定長の整数型は、通例処理系の都合によって定義される。伝統的なC言語ではcodice_2とcodice_3があり、codice_2の長さはcodice_1の長さ以下であればよく、codice_3の長さはcodice_1の長さ以上であればよい、という緩い規定だった。しかし時代の変化により、のちのC/C++標準規格ではビット数を明確化した型名が用意されるようになった（#型名の節を参照）。nビット整数型、nバイト整数型といった用語もある。#データモデルも参照。
暗号などで1024ビットや2048ビットといった程度の大きさの整数を扱うことがある。プログラムを書くだけであれば可変長整数で扱えるが、暗号では通信のスループットやレイテンシのために性能を求める場合もあり、そういう場合にはそのようなサイズを特に扱うための関数やマクロ等を定義して使うこともある。
バイトのサイズやワードのサイズ（異なるバイトがあることについては「バイト (情報) 」の記事を参照）が文脈によって明確な場合に限られるが、バイト型、ワード型、ダブルワード型、などという言いかたでも明確に表現できる。なお、ワードのサイズが不明確な場合でも、（具体的なビット数は不明だが）少なくとも「ダブルワード」はワードの倍だということはわかる。
固定小数点表現は、整数のあるビットとビットの間に固定された小数点があるものとして扱うことによる小数の表現法であり、一般にプログラマが整数演算を適宜組み合わせながら実装する。
ASCII文字コード体系では、7ビットですべての文字を表現可能なことから、1文字を1バイトの整数型として扱うことが可能である。英語圏のみに限れば、ASCIIで十分であった。しかし、日本語・中国語・韓国語など、文字種別の多い言語では、1文字を1バイトで表現することは不可能であり、1文字を複数バイトで表す符号化方式（マルチバイトエンコーディング）が言語ごとに考案された。さらに国際化対応の観点から、言語別の符号化方式ではなく、統一されたユニバーサルな符号化方式としてUnicodeが考案された。Javaは当初、先進的な設計としてUnicode 1.0を取り入れ、codice_8型をUCS-2を表現する16ビットの型としたが、のちにUnicode 2.0（1996年）で導入されたサロゲートペアのために、1文字にcodice_82個を費やす場合が発生することになった。国際化対応の観点からは、Unicodeの異体字セレクタのことなども考慮すれば、"文字"という概念を単純な整数型の一種として扱うのは無謀である。
なおC言語のcodice_8型については、何があろうと codice_11 が1になる型と、標準で決められている。極端な例としては、メモリのアドレス付けがバイト単位ではなく、16ビットのワード単位のアーキテクチャでも、codice_12 は16になるが、codice_11 は1で、32ビットのcodice_1は codice_15 が2になる。このように、codice_8という名前ではあるが「文字型」ではなく、メモリのアドレッシングの最小単位を示す型がcodice_8である、という役割がある。なお、C/C++のワイド文字型codice_18は長さがcodice_8以上であることが求められているだけであり、エンコーディングに関しても規定はない。
ポインタはメモリアドレスを抽象化した概念だが、ポインタ型と整数型は同一ではない。C言語において、ポインタから整数および整数からポインタへの変換は処理系定義である。C/C++では、2つのポインタ間の減算の結果を格納する符号付き整数型として、codice_20が定義されている。C99およびC++11規格ではcodice_21へのポインタと相互変換可能な整数型として、codice_22およびcodice_23が定義されている。
C99/C++11 では codice_24 などの固定幅整数型が標準化されている。特にAPIなど、移植性や相互運用性が重視されるケースで有用である。
C言語において、ビット数を標準で定めていない型に対する、具体的なビット数の割り当て方をデータモデルという。
特にマイクロプロセッサの64ビット化において、codice_1とcodice_26（とcodice_27）とポインタの扱いが環境によって分かれたことから、それぞれを指す用語が広く使われている。多くの16/32ビット環境と Microsoft Windows 64ビット環境ではcodice_1とcodice_26が32ビットでポインタが64ビット、すなわち IL32P64（別名：LLP64）モデルが使用されている。また、Unix 系など多くの64ビット環境では I32LP64（別名：LP64）モデルが使用されている。
またその他の例としては、16ビット時代のパーソナルコンピュータ用などで、codice_1が16ビットということがある。マイコン用などでcodice_1が8ビットというものもあった（ただし、これは標準が要求している値の範囲を満たさない）。GE-600シリーズなどでは1バイトが9ビットのためcodice_8が9ビットで整数型は全て36ビット、またCrayのようにcodice_1まで64ビットだったILP64という例もある。