三十二進法

提供: miniwiki
2018/9/24/ (月) 21:54時点におけるAdmin (トーク | 投稿記録)による版 (命数法)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

三十二進法(さんじゅうにしんほう)とは、32(てい)とし、底およびそのを基準にして数を表す方法である。

記数法

三十二進記数法とは、32 を底とする位取り記数法である。慣用に従い、通常のアラビア数字は十進数とし、三十二進記数法の表記は括弧および下付の 32 で表す。三十二進記数法で表された数を三十二進数と呼ぶ。

一般には、0, 1, …, 8, 9, A, B, …, U, V の 32 個の数字を用いる。A から V は、それぞれ十進での 10 から 31 を表す。右端あるいは小数点で 1 の桁を表す。数字の意味する数は、左に 1 桁ずれると 32 倍になり、右に 1 桁ずれると 1/32 になる。(11)32 という表記において、左の「1」は三十二を表し、右の「1」は一を表し、合わせて三十三を表す。

同様に、 (50)32 は 5×321 + 0×320 = 160 を表し、 (B4)32 = 11×321 + 4×320 = 356 を意味する。

I と 1 および O と 0 は紛らわしいので、その二つを除いて A から X までを用いることもある。

コンピュータ

コンピュータでは二進法が使われるので、底が2の冪である記数法との変換は容易である。このため、一部で三十二進法が使われる。

上記の 0, …, 9, A, …, V を用いるエンコード方式を base32hex と呼ぶ[1]

Base32

Base32 は 40 ビットを 8 文字に変換するエンコード方式である[1]Base64 と異なり、大文字小文字の違いが無視される環境においても正しく処理できる。以下に Base32 で用いる文字を示す。O, I と紛らわしい 0, 1 はない。

0 A 8 I 16 Q 24 Y
1 B 9 J 17 R 25 Z
2 C 10 K 18 S 26 2
3 D 11 L 19 T 27 3
4 E 12 M 20 U 28 4
5 F 13 N 21 V 29 5
6 G 14 O 22 W 30 6
7 H 15 P 23 X 31 7
  埋め =

変換後のデータが 8 文字に満たない場合は、 Base64 と同様に「=」で埋める。

参考文献

  1. 1.0 1.1 Josefsson, S. (2006), RFC 4648, The Internet Society, //tools.ietf.org/html/rfc4648