ネプラスのテックブログ。ネットワーク、クラウド、サーバなどのITインフラ情報を中心に発信中。

  1. ネプラス インフラエンジニア採用
  2. テックマガジン
  3. テクノロジー
  4. int型とは?int型とdouble型の違いやint型変数の宣言と演算の例を紹介!

int型とは?int型とdouble型の違いやint型変数の宣言と演算の例を紹介!

  • テクノロジー
  • プログラミング
公開日時:   更新日時:
int型とは?int型とdouble型の違いやint型変数の宣言と演算の例を紹介!
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    int型とは?


    int型とは、C言語やJavaなどのコンピュータプログラミング言語で用いられるデータ型のひとつです。int型変数には、整数値を入れることができます。

    ただし、一口に「int型」と言ってもプログラミング言語やコンパイラ等の違いにより、変数に格納できる数値の範囲は異なります。

    以降、C言語での例を挙げて説明して行きますので、参考にして下さい。

    int型変数

    変数とは、簡単に言うと「計算すべき値や計算した結果を入れておく箱」のようなものです。

    その中でも「int型変数」は、比較的小さな整数値を入れておくことができる箱と言えます。

    また、C言語の場合、int型変数にも格納できる数値の大きさによっていくつか種類がありますので、以下でそれぞれについて見ていきます。

    int型

    大抵のCコンパイラでは、32ビット(4バイト)で表現できる整数値を入れることができます。

    ただし、16ビット以下のCPU用コンパイラである場合には、16ビット(2バイト)以下の数値しか入れられないものもあります。

    そのため、他の環境へ移植する可能性のあるプログラムを作成する際にint型変数を使用する場合は、注意が必要です。

    short int型

    16ビット(2バイト)で表現できる整数値を入れることができます。表現できる数値範囲は「-32,768~32,767」です。short int型は単にshortと省略することもできます。

    最近の高性能CPUは32ビット以上であることが多いので、通常はlong型(「long int型」の項を参照して下さい)を使用した方が効率は良いでしょう。short型を使用する機会というのは9~16ビットのデータをたくさん保存するようなときでしょう。

    long int型

    32ビット(4バイト)で表現できる整数値を入れることができます。表現できる数値範囲は、「-2147483648~2147483647」です。このlong int型は、単にlongと省略することもできます。

    32ビット以上の高性能CPU上で走るプログラムを作成するときには、このlong型(またはint型)を利用することが多いでしょう。

    符号なし整数(unsigned)

    プログラミングをして行く中で、符号が不要で、その代わりにもう少し大きな値まで使いたいということがあります。

    その時に使用するのが「符号なし整数」です。符号なし整数には、以下の例のように「型」の前にunsignedを付けます。

    符号あり整数型と符号なし整数型の違い

    符号なし整数型が全ビットをすべて数値とみなすのに対し、符号あり整数型は最上位ビットを符号ビットとみなします。

    そのため符号あり整数型は、符号なし整数型に対して表現できる最大値が約半分になります。

    その他の型

    C言語には、int型以外にも文字や文字列を扱うためのchar型、実数値(浮動小数点数)を扱うためのfloat型やdouble型、型なしを表すvoid型などがあります。

    char型は8ビット(1バイト)の整数型です。扱える数値範囲は「-128~127」です。整数型ですのでunsignedを付けて符号なし整数型にすれば「0~255」の数値を扱うことができます。

    この型は、文字コードを扱うときによく使用しますが、他の8ビットデータを扱うときにも用いられます。

    次のfloat型、double型は実数値を扱う型で天文学的に大きな数値を扱うことができます。float型は32ビット(4バイト)で表現され、double型は64ビット(8バイト)で表現されます。

    最後のvoid型は、「型なし」を表す型です。型がないので0ビット(0バイト)となり、変数としては使えません。

    整数型(int型)の使い方


    C言語でプログラミングをする際、整数型(int型)変数はよく使用されます。理由は整数型の方が扱いは簡単で、処理も軽くなるからです。

    現在のパソコンなどに使用されているような高性能CPUは、実数型を扱うための命令セットを持っていますが、安価なCPUの場合、実数型を扱う命令セットがなくプログラムで処理していました。

    そのため処理速度が遅く、整数型で置き換えが可能な処理は実数型を使わずに整数型を使用していたという歴史があります。

    整数型(int型)の使い方としては、実数型を使用しないとプログラミング出来ないような用途以外は、基本的に整数型を使用すると覚えておきましょう。

    int型とdouble型の処理速度の違い

    int型変数とdouble型変数の処理速度の違いを確認できるサンプルプログラムをご紹介します。

    以下のサンプルプログラムは、WindowsのVisual Studio 2017と、MinGWのGCCで動作確認済みです。

    上記のコードをMinGWのGCCでコンパイルし、実行した結果(参考)は次の通りでした。
    (実行結果はコンパイラやコンパイル時のオプションスイッチ、実行環境等に左右されます)

    int型とdouble型の違い

    先述の通り、int型は比較的小さな整数値しか扱えません。その代わり、数値を正確に表現できます。

    それに対してdouble型は、天文学的に大きな数値から1未満の小さな数値も扱えます。ただし、有限なビット数で大きな数を表現するため誤差が生じるのは容易に想像できるでしょう。

    この誤差が曲者で、何回かの少ない計算数であれば無視できる誤差でも、何百万回と桁違いの計算をする場合、誤差を無視できなくなってくることがあります。

    double型で計算回数が多くなる場合には、結果としてどの程度の誤差が出るかを予測しておかないと、思いもよらない結果が返ってくることを念頭に置いておきましょう。

    変数以外でのint型の使われ方

    C言語のプログラムはすべて関数で構成されています。数学における関数と考え方は同じで、具体的な値(引数)を関数に渡すと具体的な値(戻り値)が返ってきます。

    int型に限らず、「型」は変数以外にも関数の引数や戻り値を指定するときにも使用します。

    三角関数を例にすると、
    y = sin( x )
    という式であれば、sin関数に渡すxが引数で、sin関数が返してくる値が戻り値になります。

    C言語の関数が数学の関数と少し異なるのは、C言語の関数は他の言語では「サブルーチン」と呼ばれているもので、処理内容はプログラマが自由に記述できるところです。

    先に出てきたsin関数で例えると、「引数xを受け取ったsin関数は数学で言うところのsinを求める処理を行い、結果(戻り値)を返す」という処理をする関数ということになります。

    int型変数の宣言と演算の例

    C言語では、変数を使う前に必ず宣言が必要です。

    その時、ローカル変数を宣言する場所は関数定義の先頭に記述するのが一般的です。また、関数の外側で宣言した変数はグローバル変数と呼ばれ、宣言した位置より下に記述されている関数すべてからのアクセスが可能です。

    以下にサンプルプログラムをご紹介します。詳細は、サンプルプログラムのコメントをご覧ください。

    int型の違いを理解して実践してみよう!

    ネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    オンライン面接も随時受付中。ぜひお気軽にご応募ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓