私の思いと技術的覚え書き

歴史小説、映画、乗り物系全般、事故の分析好きのエンジニアの放言ブログです。

デジタルとは その1 何故デジタルは2進数か?

2022-01-25 | 技術系情報
デジタルとは その1 何故デジタルは2進数か?
 昨年日本国家省庁にもデジタル庁が作られたのだが、どういう理念だとか何を目的に作られたのか、何とも訳が判らない。ちなみに、以下がデジタル庁のHPURLだが、関心ある方は見てみるといい。トップ画面には、何ともしょぼい画面構成で、コロナワクチンとか、入国手続きが云々とか、およそ既存の省庁の分野のことしかアップされていない。組織概要の部分で、それらしいことが気してあるが、これが改めてデジタル庁を作ってまで掲げなければならない内容なのかと思えてします。ただただDXだとか流行言葉の羅列だけで、「なんとなくデジタル」というイメージで作ったんじゃないかという気持ちまで持っていまう。しかし、筆者思うにデジタルとは、ものごとを成す手段であり目的ではないということを判っているのかなと思う次第なのだ。

デジタル庁HP https://www.digital.go.jp/

デジタル庁の概要
 デジタル庁は、デジタル社会形成の司令塔として、未来志向のDX(デジタル・トランスフォーメーション)を大胆に推進し、デジタル時代の官民のインフラを今後5年で一気呵成に作り上げることを目指します。

 徹底的な国民目線でのサービス創出やデータ資源の利活用、社会全体のDXの推進を通じ、全ての国民にデジタル化の恩恵が行き渡る社会を実現すべく、取組を進めてまいります。

 さて、本論に入りたい。なお、筆者は電気・電子工学の学者でもなく、さほどに深い知識を持つものでもなおで、、ないので本記述に学問的に見れば表現に誤りもあるだろうことをお断りしておく。筆者の思いとしては、概念をザクリと知っておいてもらいたいということが主題だ。

 デジタルというと、ゼロと1しかない、通知表現すると 1101 の様なイメージを持ち、もって2進法のことを規定している意味だと捉えるが、実態上間違いではないようだが、語源としてのデジタルは digit 数値のことを指している。また、2進法のことは Binary (バイナリ)と呼ぶそうだ。つまりデジタルは、必ずしも2進法に限らず、4進法、8進法、10進法、16進法などあり得るが、2進法を前提にしたのは、数値があるかないかの2値で表現することで、その伝送や保存において誤りがないとか、外来ノイズの影響を受け難いとか、冗長性と呼ぶが本来のデータ列に、規則性のある数値列の算術値を付加することで、データの誤りを自動で補正できたり、送受信の場合は、誤りを見つけて再送を要求することができるなどがある。

 それと、核心は計算機で計算する場合に、2進法だと計算する場合に、比較的簡単な論理演算回路で可能と云うことをたぶん数学者が知ったからだと思える。簡単な10進法だと1の次は2になるのだが、2進法では11と桁上がりする。さらに。10進3は、2進法では11,10進4は2進ではまた桁がりし100と云う具合に、桁が増えるがあくまでも使用する数値は0と1だけだ。この2進数、10進数、16進数の対応は、デジタルデータを見る場合によく使われるので、知っておいた方が良い。(2、10、8、16進数換算表参照)
 なお、デジタルの最初単位をbit(ビット)と呼び、0か1かのいじれかということと、8bit単位で1バイト(byte)と呼ぶが、必ずしもバイト単位で計算処理をするものではないが、1バイトで2^8(乗)=256種の半角英数カタカナ特殊記号文字列が割り当てられている。ただし、感じになると1バイトでは割り当てきれないので、2バイトコードと文字と呼ばれる2^16=65,536種で日本語はカバーしきれるが、世界には3バイトコードとなる2^32=4,294,967,296種ある文字コードを使用する場合もある様だ。ちなみに、Windoowsも今でも32ビットモードと64ビットモードがあるが、32ビットモードでは、メインメモリのアドレスが32ビットの限界となる4Gバイトまでに制限される。

 それと、デジタルデータを表記する場合、1バイト単位だと、文字種が1単位で256種もあり、中には文字化できない制御コード(例えば改行コード)などもあり判読し難いので、4bitづつで区切り、16進数で2文字で1バイトを表す場合が多い。これは、0~9までは10進数と同じで、10以降をアルファベットのA~Fに対応させた16文字で4ビットを16進数として表せるので判読性が良く、目にする機会があるだろう。なお、16進数文字列の場合、文字列先頭に0xと付けか文字列末尾にhを付けることが一応の約束事になっているので、0x*****とか***hと記述してあれば、これは16進表記なんだと承知しておけば良い。なお、文字列を眺めて1~0、ABCDEFしか使用していない文字列はワード先頭0xもしくは末尾にhがなくても16新表記(つまり4bit単位)なんだと判断すれば良い。

 ついでに、様々なコンピュータープログラムは、この2進法の文字列をメインメモリー(主記憶装置:CPUに直結している)にプログラムの全部もしくは一部を展開して動作させるが、コンピュータープログラムはこんな記号の羅列では記述や判読が困難なので、専用言語(C言語、昔の大型コンピューター用だとコボル、フォートランなど)で記述して完成させる(これをソースコードと呼ぶ)が、それをコンピューターに実行させるには、完全に2進(バイナリ)に変換したデータに変換する処理を行って実行ファイル化する。この処理をコンパイルと呼ぶ。同じ言語でも、対応するコンピューターチップによりコンパイルデータは異なるので、CPUチップに対応したコンパイラー(コンパイルするソフトウェアのこと)をしようする。ただし、CPUによっては、その言語の処理に対応できない場合もあったりと技術的な問題もある様だ。それと。コンピューターソフトは、著作権フリーが宣言されていない限り著作権があり、逆アセンブルするソフトである程度ソースコードに戻し、そのアルゴリズム(データ処理の手順)をそっくり模倣すると著作権法違反となる。しかし、世には、ソースコード開示の無料のソフトもあり、そのOS(オペレーティングソフト:基本ソフト)がUnixから発展したLinuxとかスマホOSのAndroidなのだ。何故オープンソースにするのかと云う理由は様々だが、Linuxは元々学術系として商用としての意識がなかったのだが、アンドロイドはGoogleが商用に作成したものだが、参加するハードウェアおよびアプリソフトを呼び込むという戦略だ。また、PC用OSとしては Windowsは未だに世界を占有しているが、これはこの上で動くアプリが充実してしまったことによる。だから、マイクロソフト社はWindoowsのバーションアップに際し無料化して、ユーザーを逃がさない戦略を取ってOS占有の永続化を意図しているのだ。


追記
 コンピュータの世界やデータ記録の世界はバイナリデータ(2進)の世界だが、世には時間、日、月とか、時間は分単位まで60進だが時間と日は12進だ。自動車の角度を示すものに360進として、1°30'(1度30分)等と示すものもある。なお英単位でdegで表す。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。