1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新卒1年目に知りたかったシリーズ① ~32bitと64bitの違い~

1
Last updated at Posted at 2025-12-20

概要

本シリーズでは、自分が新卒1年目のときに知りたかった(≒理解に苦労した)事項を説明していきます。
当時の調べ方が悪かったんじゃないかとか、今はAIがあるから不要じゃないかとか色々考えられますが、自分の理解を整理することを主目的としてやります。

本記事では、32bitと64bitの違いを説明します。

①「OSの種類」「ソフトの種類」「CPUの種類」として存在している

32bitと64bitといっても、何個かの種類があります。
つまり、「32bit版のOSと64bit版のOSがある」かつ「32bit版(用)のソフトと64bit版(用)のソフトがある」かつ「32bitに対応したCPUと64bitに対応したCPUがある」ということです。
当然ながら、exeはOSの上で動かすもので、OSはハードにインストールするもの、と主従関係があります。ですので、CPUが64bitならOSも64bit、OSが64bitならexeも64bit、というのが普通です。

32bitが旧、64bitが新

そもそも32bitと64bitとは単語としてどういう意味かというと、bit数が32と64ということです。(当然ですが)
昔はハードの技術的制約か何かで、32bit一塊で処理するしかない状況でした。後に64bit一塊で処理する技術が登場して、高性能なため主流になりました。1
そこと照らし合わせると分かりやすいのですが、32bitにしか対応していないCPUに64bitのOSはインストールできませんし、32bitOS上で64bitのexeは動かせません。
そして新しい方である64bitは後方互換性を保っている場合が多いです。つまり、32bitOSは64bitCPUにインストールできますし、32bitのexeは64bitOS上で動きます。ここは詳しくは後で述べます。

②各レイヤーの詳細

exe(ソフト)の種類

まずはそんなにややこしくない、exeの種類です。
多くのソフトは32bit版と64bit版の両方が用意されていて、インストーラーも両方あります。古いものだと32bit版しかなかったりしますが。
前述のとおり最近はほとんどが64bitOSですので、基本的には64bit版をインストールすればよいです。
ソフト開発者としても、64bitの方がメモリ容量などの制限が緩く性能もいいため、32bitを積極的に採用する理由は基本的にありません。
なお、32bitのソフトを動かすと、タスクマネージャーにも32ビットと表示されます。
image.png
手近にあった32ビットアプリのDesignDollを動かしてみました。タスクマネージャーにこんな感じで表示されます。
Windowsだとprogram files(x86)フォルダ配下にインストールされてるのが32bitソフト(の可能性があるもの)です。
まれにexeにも命令セットを指定するものがありますが、いったん省きます。

OSの種類

次に、OSの種類です。
Windows10には、Home/Pro/Education/Enterpriseの全てで32bit版と64bit版両方が用意されています(参考:wikipedia)
最近のOSはほぼすべてが64bit版といっていい気がします。Windows11では32bit版がなくなりました。
他のOSについては未調査です。

64bitOSでも32bitアプリが動く

64bit版のWindowsではWOW64という仕組みがあって、32bitアプリが動くようになっています。

直接関係はないのですが、こちらも参考になるかと思います。

ARM版の存在

windows11では、32bitと64bitの違いのほかにARM版というものが用意されています。
これが何者かは命令セットアーキテクチャを理解しないとわかりませんので後述します。

CPUの種類

CPUは、OSやソフトのように「32bit版」「64bit版」が用意されているというよりは、対応する命令セットアーキテクチャがそれぞれ異なるという違いがあります。

これ以降は、公式ドキュメントなどによる裏どりができていません。ざっくり自分の理解をまとめた程度のものと思ってください。ご指摘もお待ちしています。

少し長くなるので、先に要点を述べます:

  • Intelの64bitアーキテクチャであるx86_64は32bitアーキテクチャであるx86の拡張であるため、32bit命令が動く。
  • 浮動小数点演算をサポートする拡張命令セットが定番でついており、対応状況はCPUによってさまざま

主要な命令セットアーキテクチャ

CPUには、バイナリを渡すことで命令をし、動かします。この命令一つ一つは単なるバイナリにすぎませんが、それを集めたものを命令セットといい、特に重要な(日常的に使う)命令を集めたものを命令セットアーキテクチャといいます。
x86
Intel が開発した命令セットアーキテクチャで、もともとは 16bit から始まり、後に 32bit(IA-32)へと拡張されました。

x86_64
x86を拡張したもので、64bitの命令を含みます(基本的な動作はすべて64bit命令で行えます)。
AMDがx86を64bit化したものが**x86_64(AMD64)**で、現在ではIntelもこの仕様を採用しています。
x64はx86_64の別名です。
最近のIntelが販売しているCPUは大概x64だと思います。

ここまでのことから、最近の64bitCPUはx86の拡張であるので、32bit命令が普通に使えるといえます。

ARM
macに入っているものです。ARM64(AArch64)というのが64bit版の命令セットのようです。

拡張命令セット

x86 / x86_64の拡張として、浮動小数点演算に特化した拡張が代表的です。(x64の拡張でもあります)

SSEシリーズ、AVXシリーズ
SSE, SSE2, SSE3, SSE4.1, SSE4.2,...や、AVX-2, AVX-512, ...といった拡張命令セットがあり、浮動小数点演算の高速化に役立ちます。
一度に複数の演算を実行するような技術で、動画の再生/編集や、AIの処理に貢献しているようです。

まとめ

  • 32bitと64bitの違いがまとめられた。
  • 新規にソフトを開発する場合は64bit版のみでよい。

最後までお読みいただきありがとうございました。

  1. 参考:CPU年表 - wikipedia

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?