コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
Wikippe
検索
検索
表示
ログイン
個人用ツール
ログイン
整数型のソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
整数型
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
要求した操作を行うことは許可されていません。
このページのソースの閲覧やコピーができます。
'''整数型'''(せいすうがた、{{Lang-en|''integer''}})は、[[プログラム (コンピュータ)|プログラム]]の[[データ型]]の1つまたは1群で、整数の部分集合を取り扱うものである。[[C言語]]や[[Java]]などの多くの[[プログラミング言語]]において、整数型は実際には[[整数]]の[[有限]]な[[部分集合]]のみを取り扱う。 [[プログラム (コンピュータ)|プログラム]]で扱うもっとも単純な単位であり、[[コンピュータ]]の初期から概念として存在している。 == 種類 == ===符号あり整数と符号なし整数=== [[正の数と負の数|正負]]両方の整数を表せる[[プラス記号とマイナス記号|符号]]あり整数型と、非負(0または正)の整数だけを表せる符号なし整数型とがある。符号あり整数型は、負数を表せるかわりに、表せる正数の上限は低い。 {{Main|符号付数値表現}} 符号なし整数は、ビットの並びをそのまま数値として解釈するが、符号あり整数では、負の値の表現方法にいくつか種類が存在する。 ===短精度整数型と長精度整数型=== 多くの言語には、通常の整数型より表せる範囲が狭い(そのかわり[[メモリ]]消費が少ない)短精度整数型(単精度整数型)と、範囲が広い(そのかわりメモリ消費が多く、低速なこともある)長精度整数型がある。さらに範囲が広い倍長精度整数型があることもある。 短精度整数型、整数型、長精度整数型、倍長精度整数型の表せる範囲は言語や処理系によって違うので、曖昧さをなくすために○ビット整数型、○バイト整数型という言いかたもある。また、バイト型、ワード型、ダブルワード型などという言いかたもある。 ===文字型=== 文字は、コンピュータの内部では整数で表現されている。そのため、多くの言語は[[文字型]]を整数型の一種として扱う。ただし、その関係性は言語によって文字型と整数型が互いに[[型変換]]可能であるものから、独立した文字型がなく、文字型に相当するものが完全に整数型の分類の1つに組み込まれたもの([[C言語|C]]など)まで様々である。 ===多倍長整数型=== [[多倍長整数|多倍長整数型]]は、事実上任意の範囲(たとえば数百桁~数百万桁)の整数を表すことができる。通常、[[ソフトウェア]]で実装され、内部的には整数の[[配列]]で表現されている。 ===固定小数点実数型=== [[固定小数点数|固定小数点実数型]]は、内部的には[[浮動小数点数|浮動小数点実数型]]より整数型に近いため、整数型の一種とすることがある。 ===ポインタ=== [[ポインタ (プログラミング)|ポインタ]]は多くの場合、[[メモリアドレス]]を指す整数値として実装されている。ただし、ポインタに対する演算はCに代表されるように、通常の整数とは異なった扱いを受けることが多い。 == データ型名 == {| class="wikitable" |- ! 符号 ! ビット数 ! バイト数 ! C/C++<br>([[C99]], [[C++11]]) ! nowrap | C/C++<br>(32ビット, LLP64<sup>1</sup>) ! C/C++<br>(LP64<sup>1</sup>) ! Java ! C# ! SQL92 ! VB(Ver6以前) ! COBOL(代表例) |- | 有 | 8 | 1 | int8_t | colspan="2" | signed char<sup>2</sup> | byte | sbyte | | | |- | 有 | 16 | 2 | int16_t | colspan="2" | short | short | short | smallint, int2 | Integer | COMP-1(1から4桁) |- | 有 | 32 | 4 | int32_t | int<br>long | int | int | int | integer, int, int4 | Long | COMP-1(5から9桁) |- | 有 | 64 | 8 | int64_t | long long | long<br>long long | long | long | bigint, int8 | | COMP-1(10から18桁) |- | 無 | 8 | 1 | uint8_t | colspan="2" | unsigned char | | byte | tinyint, int1 | Byte | BINARY-CHAR UNSIGNED(機種依存) |- | 無 | 16 | 2 | uint16_t | colspan="2" | unsigned short | char | ushort | | | COMP-1(1から4桁) |- | 無 | 32 | 4 | uint32_t | unsigned int<br/>unsigned long | unsigned int | | uint | | | COMP-1(5から9桁) |- | 無 | 64 | 8 | uint64_t | unsigned long long | unsigned long<br/>unsigned long long | | ulong | | | COMP-1(10から18桁) |} <sup>1</sup> [[C99]]/[[C++11]] には <code>int64_t</code> など固定幅整数型があるが、古い C/C++ では整数型の絶対的なビット数は規格で定められていないため、様々なビット数の割り当て方が存在し、この割り当て方を定めた物をデータモデルという。多くの16/32ビット環境と Windows [[64ビット]]環境ではintとlongが32ビットでポインタが64ビット、すなわち IL32P64(別名:LLP64)モデルが使用されている。また、Unix 系など多くの64ビット環境では I32LP64(別名:LP64)モデルが使用されている<ref>[http://www.itmedia.co.jp/enterprise/articles/0506/13/news006_2.html 64ビットになると何が変わる?――64ビットプログラミングのデータモデル (2/2)]</ref>。 <sup>2</sup> C/C++ では単なる char 型の符号有/無については規定されておらず、処理系によって異なる。 <sup>3</sup> 現段階においてint128以降は標準実装化されておらず、自作で関数化されている場合が多いようである。理論上はメモリ上での利用限界まで設定可能である。 ==参照== {{脚注ヘルプ}} <references /> == 関連項目 == *[[データ型]] *[[変数 (プログラミング)]] *[[実数型]] {{データ型}} {{DEFAULTSORT:せいすうかた}} [[Category:コンピュータの算術]] [[Category:コンピュータのデータ]] [[Category:データ型]] {{Computer-stub}}
このページで使用されているテンプレート:
テンプレート:Computer-stub
(
ソースを閲覧
)
テンプレート:Lang-en
(
ソースを閲覧
)
テンプレート:Main
(
ソースを閲覧
)
テンプレート:データ型
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
整数型
に戻る。
検索
検索
整数型のソースを表示
話題を追加