「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

アンパック十進数

pointこの用語のポイント

pointコンピュータさんの数字の扱い方だよ

point十進数の各桁を、それぞれ二進数8桁(1バイト)で表現するよ

スポンサーリンク

簡単に書くよ

アンパック十進数(読:アンパックジュッシンスウ 英:unpacked BCD)とは

コンピュータ上での数字の扱い方のひとつ
であり

例えば「12」を「00000001 00000010」のようにする、十進数(各桁が「10」になると桁上がりする数字)の数字の各桁を それぞれ二進数(各桁が「2」になると桁上がりする数字)8桁(1バイト)で表現するやり方(で表現した数字)
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

ビット
バイト
十進数
二進数
二進化十進数BCD


について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ビットは、コンピュータさんの世界における「0か1が入る箱」です。

アンパック十進数

あるいは、この「0か1が入る箱」の数を表す単位です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。

アンパック十進数2

バイトは「ビットが8つ集まったもの」です。
0か1が入る箱(ビット)が8つ入るくらいの大きな箱がバイトだと思ってください。

アンパック十進数3

あるいは、このデカい箱の数を表す単位がバイトです。
「2バイト」であれば「ビットが8つ入る大きさの箱が2つあるよ」の意味になります。

アンパック十進数4

……というのが基本ですけどね。
こだわり派の人がいるかもしれないので補足しておきます。

実は必ずしも1バイトが8ビットとは限りません。
環境によっては「1バイト=7ビット」のときもあれば「1バイト=9ビット」の場合も あります。

ただし、一般的には

1バイト=8ビット

です。
それ以外は例外と捉えて、あまり気にしないでください。

十進数は「各桁が『10』になると桁上がりする数字」です。

アンパック十進数5

みなさんが日常生活で使っている数字は、ほとんどが十進数です。

二進数は「各桁が『2』になると桁上がりする数字」です。

アンパック十進数6

具体的には

十進数:二進数
0:0
1:1
2:10
3:11
4:100
5:101
6:110
7:111
8:1000
9:1001
10:1010


のような感じです。

二進化十進数は「十進数の数字の各桁を、それぞれ二進数4桁で表現するやり方(で表現した数字)」です。
BCD」と表現されることも あります。

アンパック十進数7

「BCD」と表現された場合は「Binary-Coded Decimal(バイナリ・コーデッド・デシマル)」の略です。
気が向いたら、覚えてあげてください。

アンパック十進数8

※「Binary-Coded Decimal」を何となく日本語にすると「二進法で符号化された十進数」となります。[詳細]

例えば、そうですね。

十進数で「19」という数字が あったとしましょう。

アンパック十進数9

二進化十進数にするときは数字の各桁を分けて考えます。
具体的には「1」と「9」に分けるのです。

アンパック十進数10

十進数の「1」を二進数4桁で表現すると「0001」です。

アンパック十進数11

十進数の「9」を二進数4桁で表現すると「1001」になります。

アンパック十進数12

2つをくっつけた「0001 1001」が十進数「19」を二進化十進数で表現したものです。

アンパック十進数13

基本的には、これだけです。
桁数が増えても考え方は同じです。
例えば3桁の十進数「125」であれば「1」と「2」と「5」に分けて、それぞれ二進数4桁「0001」「0010」「0101」に変換して、くっつけるだけです。

アンパック十進数14

なお、二進数4桁に変換するのは「9」を表現するのに4桁必要だからです。
十進数「9」は二進数で表現すると「1001」になります。
「二進数が4桁あれば0から9まで表現できるよね」という理由で4桁になっているのです……多分。

以上を踏まえて

十進数の数字の各桁を、それぞれ二進数8桁(=1バイト)で表現するやり方(で表現した数字)

が「アンパック十進数」です。
ゾーン十進数」とも呼ばれます。

アンパック十進数15

アンパック十進数の考え方は二進化十進数と同じです。
二進化十進数では二進数4桁だったのがアンパック十進数では8桁になるだけです。

それでは、どうして4桁で済むのに8桁使うのでしょうね?

それはコンピュータさんの都合が関係してきます。

アンパック十進数16

二進数4桁は4ビットです。
二進数4桁を表現するには、0か1が入る箱が4個必要ですよね。

アンパック十進数17

二進数8桁は8ビットです。
二進数8桁を表現するには、0か1が入る箱が8個必要ですよね。

アンパック十進数18

ただし、8ビットは1バイトです。
ビットが8つ入る大きな箱(バイト)を1つ用意すれば、それで済みます。

アンパック十進数19

小さい箱が4つもあるより大きい箱が1つだけある方が管理しやすそうですよね。
コンピュータさん的には4ビット単位で管理するより1バイト単位で管理する方が楽なのです。

アンパック十進数20

そんな理屈……かどうかは知りませんが、多分そんな理屈で

「頑張れば二進数4桁(4ビット)で表現できるけど、管理上楽だから二進数8桁(1バイト)で表現するね!」になっている二進化十進数っぽいやつ

がアンパック十進数です。

なお、実際の中身は、もう少しだけ複雑です。
例えば「マイナスの数は、どう表現するの?」とかがありますからね。
そこら辺の あれやこれやは他のところで勉強してください。


image piyo2

一言でまとめるよ

まぁ「アンパック十進数」って単語が出てきたら「十進数(各桁が「10」になると桁上がりする数字)の各桁を、それぞれ1バイトで表現するやり方(で表現した数字)なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像055
書籍画像049

おまけ

■訳してみるよ

「un(アン)」という接頭辞が付くと「否定」とか「反転」の意味になります。
「pack(パック)」の意味は「包み」とか「荷物」とか「包む」とかです。
「十進数」は日本語ですね。
何となく くっつけると

包まれていない十進数

となります。





書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Kubernetes入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
タヌキとキツネ