LoginSignup
24
17

More than 5 years have passed since last update.

暗記しておくと楽になる2の累乗数

Last updated at Posted at 2015-12-23

新人の頃、毎日唱えて暗記しました。「読み」を声に出すと、意外と記憶に残りやすいようです。

なぜこんなのを覚えるかというと、ワーキングメモリが貧弱なので、技術書を読む時など、めんどくさい計算はなるべくショートカットして、思考の負担を少しでも減らしたいからです。

2^n 10進数 読み 覚え方
2^6 64 ロクヨン 6が共通
2^8 256 ニゴロ みんな大好き
2^10 1,024 センニジュウヨン 10が共通
2^12 4,096 ヨンマルキュウロク ページサイズ(4K)
2^16 65,536 ロクゴゴサンロク 16ビットレジスタの
64Kオフセットの壁
2^20 1,048,576 104万8,576 8086のA20ゲート
2^22 4,194,304 419万4,304 特になし
2^24 16,777,216 1,677万7,216 System/360のアドレス長
2^30 1,073,741,824 10億7,374万1,824 1GiB
2^31 2,147,483,648 21億4,748万3,648 2GiB
2^32 4,294,967,296 42億9,496万7,296 4GiB
2^64 18,446,744,073,709,551,616 イヤシシ・ムナシシ・オナミナ・オクゴゴ・イロイロ 16EiB

2^nの形式で表現される整数は、「nビットで表現可能な整数の種類数」でもあります。1ビットでは01の2パターンが表現可能なので、nビットにおいては2^nパターンが表現可能、という寸法ですね。

2^n-1の形式で表現される整数は、「nビットがすべて1」という内部表現になります。このことから、nビットの符号つき整数の最大値は、2^(n-1)-1の形式をもちます(最上位ビットが符号ビットとなるため(n-1)乗となる)。

この知識を利用すると、32ビットのsigned intの最大値は?と聞かれても、「(えーと0111...だから2^31-1で)2,147,483,647」と即答できるようになります。

また、「ビットがすべて1」の内部表現について、符号あり整数(負数は2の補数で表現)として解釈した場合、-1となります。

2^n-1 2進数 符号あり整数
2^8-1 1111_1111 -1
2^16-1 1111_1111_1111_1111 -1
2^32-1 1111_1111_1111_1111_
1111_1111_1111_1111
-1

記憶容量の単位です。

2^n 10進数
1KiB 2^10 1,024
4KiB 2^12 4,096
1MiB 2^20 1,048,576
1GiB 2^30 1,073,741,824
4GiB 2^32 4,294,967,296
16EiB 2^64 18,446,744,073,709,551,616

左ビットシフトです。nビット左シフトは、2^n倍と等価です。

2<<n 10進数で何倍か
2<<3 x 8
2<<4 x 16
2<<8 x 256
24
17
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
24
17