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ビット
0000050101
1000160110
2001070111
3001181000
4010091001

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進
BIN0000 0100 1101 001004D2H
BCD0001 0010 0011 01001234H

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)符号なし符号付き
0000H0000 0000 0000 000000
7FFFH0111 1111 1111 11113276732767
8000H1000 0000 0000 000032768−32768
FFFFH1111 1111 1111 111165535−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進のビット並びを並べて確かめてください。

関連記事・関連ツール

スポンサーリンク