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

パック十進数

pointこの用語のポイント

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

point十進数の各桁を、それぞれ二進数4桁(4ビット)で表現するよ

スポンサーリンク

簡単に書くよ

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

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

例えば「12」を「0001 0010」のようにする、十進数(各桁が「10」になると桁上がりする数字)の数字の各桁を それぞれ二進数(各桁が「2」になると桁上がりする数字)4桁(4ビット(0か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バイト)で表現するね!」になっている二進化十進数っぽいやつ

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

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

以上を踏まえて

十進数の数字の各桁を、それぞれ二進数4桁(4ビット)で表現するやり方(で表現した数字)

が「パック十進数」です。

パック十進数21

アンパック十進数では1桁表現するのに1バイト(8ビット)使いました。

パック十進数22

ただし、実際には4ビットあれば表現できます。
1バイト(8ビット)使っているのは管理が楽だからです。

パック十進数23

4ビットあれば表現できるのに1バイト(8ビット)使っているのです。
無駄ですね。
もったいない!

パック十進数24

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

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

がパック十進数です。

パック十進数25

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

あと、話を単純化するためにアンパック十進数の例の「9」を「00001001」と表現しましたが、アンパック十進数の先頭4ビットは「ゾーンビット」や「ゾーン部」などと呼ばれ、別の用途で使われています。
そこら辺の あれやこれやも他のところで勉強してください。


image piyo2

一言でまとめるよ

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

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

おまけ

■訳してみるよ

「pack(パック)」の意味は「包み」とか「荷物」とか「包む」とかです。
「十進数」は日本語ですね。
何となく くっつけると

包まれた十進数

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
つくって、壊して、直して学ぶ Git&GitHub 入門
ウォーターサーバーのキャッチコピーを100本考える方法