BCD・BIN・16進 変換ツール|PLCのデジタルスイッチ・7セグ表示の値を相互変換【10進・2進・BCD】
この計算ツールは「0回」利用されています。
このページは 10進・16進・2進・BCD を相互に変換できる無料の計算ツール です。会員登録もログインも不要で、どれか1つの形で値を入れると、ほかの表し方(16ビットの BIN と 4桁の BCD)がまとめて出ます。16ビットの符号付き(−32768〜32767)/符号なし(0〜65535)を切り替えられ、b15〜b0 のビット並びを4ビットずつ区切って BCD の各桁と並べて見せます。BCD 入出力タイプのデジタルスイッチや7セグ表示器とやり取りする値を確かめるとき、スマホからも使えるよう作っています。
🔢 BCD・BIN・16進 変換ツール
※ この変換は数の表し方を変えるだけの計算です。PLC の命令が扱える範囲やエラーになる条件は、機種と命令ごとに決まっています。プログラムで変換するときは、使う PLC のプログラミングマニュアルで確認してください。
このツールの使い方
- 入力の種類:10進/16進(BIN)/2進(BIN)/BCD(16進表記)から選び、値を入れて「変換する」を押します。10進・16進・2進・BCD がまとめて出ます
- 16ビットの読み方:同じビット並びを 0〜65535 として読むか(符号なし)、−32768〜32767 として読むか(符号付き)を選びます。範囲を超えた10進はエラーとして止めます
- 入力の書き方:16進は末尾の H や先頭の 0x を付けても付けなくてもかまいません。2進は4ビットごとに空白を入れても読み取ります。全角の数字も半角に直して計算します
- ビットの対応表:b15〜b0 を4ビットずつ区切り、BIN と BCD のビット並び、BCD の各桁(千・百・十・一の位)を縦にそろえて並べます
- BCD で表せない値:負の数・10000 以上、A〜F の桁を含む BCD 入力は「BCD で表せません」と理由つきで表示します
BCDとは:10進の1桁を4ビットで表す形式
BCD(Binary Coded Decimal、2進化10進数)は、10進数の各桁を別々に4ビットの2進数で表す形式です。4ビットの重みが上から 8・4・2・1 なので、8421コードとも呼ばれます。16ビットなら4ビット×4桁で、10進4桁の 0〜9999 を表せます。
| 10進の1桁 | 4ビット | 10進の1桁 | 4ビット |
|---|---|---|---|
| 0 | 0000 | 5 | 0101 |
| 1 | 0001 | 6 | 0110 |
| 2 | 0010 | 7 | 0111 |
| 3 | 0011 | 8 | 1000 |
| 4 | 0100 | 9 | 1001 |
4ビットは本来 0000〜1111 の16通り(0〜15)を表せますが、BCD で使うのは 0〜9 の10通りだけです。1010〜1111(16進の A〜F)が混じったビット並びは BCD の数字として読めないので、このツールでは「BCD で表せません」と表示し、どの桁が A〜F になっているかを示します。
BINとBCDの違い:同じ1234でもビット並びが変わる
BIN(純2進数)は、数全体をひとつの2進数で表す形式です。10進の 1234 を2つの形で並べると次のようになります。
| 表し方 | 2進(b15〜b0) | 16進 |
|---|---|---|
| BIN | 0000 0100 1101 0010 | 04D2H |
| BCD | 0001 0010 0011 0100 | 1234H |
BCD を16進で見ると 1234H で、10進の 1234 と同じ数字が並びます。4ビットがちょうど16進の1桁にあたるので、BCD の各桁がそのまま16進の各桁になるためです。16進で見た BCD の値は、そのまま10進に見える——BCD のデータを16進でモニタするときに覚えておくと、読み違いが減ります。
逆に、BCD の 1234H を BIN のつもりで読むと 4660(1×4096+2×256+3×16+4)になります。PLC の外の機器と BCD で値をやり取りするときは、PLC の中で計算する前に BCD→BIN の変換を挟み、外へ出すときに BIN→BCD へ戻す必要があります。PLC でこの変換をする命令(BCD・BIN 命令)の使い方は 【GX Works3】データ変換命令の使い方|BCD/BIN・整数⇔実数(INT2FLT/FLT2INT)まで総まとめ で解説しています。
表せる範囲も違います。16ビットの BIN は 65536 通りのビット並びを全部使います(符号なしで 0〜65535)が、BCD 4桁で使えるのは 0〜9999 の 10000 通りだけです。
符号付きと符号なし:負の数は2の補数で表す
16ビットのビット並びが同じでも、10進としての読み方は2通りあります。
- 符号なし:0〜65535。b15 も普通の桁(重み 32768)として読みます
- 符号付き:−32768〜32767。b15 が 1 のときは負の数として読みます(2の補数)
2の補数では、負の数 −n を 「65536 − n」のビット並びで表します。−1 なら 65536 − 1 = 65535 = FFFFH です。手で求めるときは、n の2進の 0 と 1 をすべて反転してから 1 を足しても同じ結果になります。−1234 なら、1234 = 0000 0100 1101 0010 を反転して 1111 1011 0010 1101、1 を足して 1111 1011 0010 1110 = FB2EH です。
| 16進 | 2進(b15〜b0) | 符号なし | 符号付き |
|---|---|---|---|
| 0000H | 0000 0000 0000 0000 | 0 | 0 |
| 7FFFH | 0111 1111 1111 1111 | 32767 | 32767 |
| 8000H | 1000 0000 0000 0000 | 32768 | −32768 |
| FFFFH | 1111 1111 1111 1111 | 65535 | −1 |
16ビットの値を入れる箱としては、三菱PLCのデータレジスタ(D)が代表で、1点が16ビットです(デバイスの種類は 三菱PLCのデバイス種類まとめ|X・Y・M・L・D・T・Cの使い分け にまとめています)。同じ D の中身でも、符号付きで扱うか符号なしで扱うかで10進の値が変わります。アナログ入力ユニットのディジタル値を工学値(℃や MPa など)に換算したいときは アナログスケーリング計算ツール【4-20mA⇔デジタル値⇔工学値】|PLCのスケーリングを一発換算 を使ってください。
千の位が8・9のBCDは、符号付きで読むと負の数になる
BCD の千の位が 8 か 9 だと、b15 が 1 になります。たとえば BCD の 9999 は 9999H = 1001 1001 1001 1001 で、符号なしの BIN として読むと 39321、符号付きの BIN として読むと −26215 です。ツールの入力の種類を2進にして 1001 1001 1001 1001 を入れ、符号付き・符号なしを切り替えると、同じビット並びの読み方の違いを確かめられます。
よくある質問(FAQ)
Q1:BCDで表せる範囲はいくつまでですか?
A:16ビット(4桁)のBCDで表せるのは 0〜9999 です。各4ビットに 0〜9 しか使わないため、16ビットで作れる 65536 通りのビット並びのうち 10000 通りだけがBCDになります。負の数と 10000 以上は、このツールでは「BCDで表せません」と表示します。
Q2:A〜Fが混じった値をBCDとして入れるとどうなりますか?
A:BCDの各桁は 0〜9(0000〜1001)だけなので、1010〜1111(16進の A〜F)の桁があるビット並びはBCDとして読めません。ツールは「BCDで表せません」と表示し、どの桁(千・百・十・一の位)が何になっているかを示します。同じビット並びをBINとして読んだ10進の値も参考に出します。
Q3:符号付きと符号なしはどちらを選べばよいですか?
A:16ビットのビット並びは同じで、10進としての読み方が違うだけです。負の数を扱う値なら符号付き(−32768〜32767)、0〜65535 の値なら符号なしを選びます。たとえば FFFFH は符号付きで −1、符号なしで 65535 です。どちらで扱うかは、その値を使うプログラムや機器の仕様に合わせてください。
Q4:PLCの中でBCDとBINを変換するにはどうしますか?
A:PLCの中では変換命令を使います。三菱PLC(GX Works3)のBCD・BIN命令の使い方は「【GX Works3】データ変換命令の使い方|BCD/BIN・整数⇔実数(INT2FLT/FLT2INT)まで総まとめ」で解説しています。このツールは数の表し方を変えるだけの計算で、命令が扱える範囲やエラーになる条件は扱っていないため、使うPLCのプログラミングマニュアルで確認してください。
まとめ
BCD は10進の1桁を4ビットで表す形式で、16進で見るとそのまま10進の数字に見えます。BIN とはビット並びが違うので、BCD でやり取りする値は PLC の中で BIN に直してから計算し、外へ出すときに BCD へ戻します。16ビットの値は符号付き・符号なしで10進の読み方が変わります。迷ったら値をツールに入れて、BIN・BCD・2進のビット並びを並べて確かめてください。
