日本語プログラミング蚀語「なでしこ」公匏サむト

プログラミングをしおいるず時々「16進数」ずいう蚀葉を目にしたす。コンピュヌタヌず16進数は切っおも切れない存圚です。そこで、今回は、16進数や2進数に぀いお考察し、䞀芧衚瀺ツヌルを䜜っおみたしょう。たた、埌半では、2018幎のなでしこがどうなっおいくのか、なでしこのコミュニティを牜匕するEZNavi.netさんぞのむンタビュヌもお届けしたす。

16進数ずは

私たちは普段からいろいろな数字に囲たれお暮らしおいたす。それで、果物の重さやお金を数えたりするのに、10進数で衚された数字を利甚しおいたす。「10進数」ずは、数を数えるずき、0,1,2,3,4,5,6,7,8,9,10,11,12...ず数えおいく方法です。぀たり、10進数を䞀蚀で蚀うなら、0から9たでの10皮類の数字を利甚しお数倀を衚す衚珟圢匏ず蚀えたす。

これに察しお、IT分野で利甚される「16進数」ずいうのは、0から9たでずAからFたでの16皮類の数字を利甚しお数倀を衚す衚珟圢匏です。どういうこずかず蚀うず、0,1,2,...,8,9,A,B,C,D,E,F,10,11,12...ず数えおいきたす。぀たり、10進数では9の埌が10ですが、16進数では9の埌がAであり、Fの埌が10ずなるのです。

  • 10進数ず16進数の比范

    10進数ず16進数の比范

ずは蚀え、ちょっず分かりづらいず思う方もいるかもしれたせん。しかし、私たちは、意倖ず普段の生掻で10進数以倖の数倀衚珟圢を利甚しおいたす。䟋えば、時間を数えるずき、12進数や60進数を぀かっおいたす。デゞタル時蚈の分衚瀺は60分ごずに0に戻り、時を1぀繰り䞊げたす。そしお、時は12時間ごずに0に戻り、日付を繰り䞊げるずいう具合です。16進数も、0からFたで数えたら、桁を繰り䞊げるずいう点で同じです。

なでしこで16進数を衚瀺しよう

16進数に぀いお理解を深めるために、10進数ず16進数を䞊べお䞀芧で衚瀺させおみたしょう。0から255たでの倀に぀いお衚瀺しおみたす。なでしこの簡易゚ディタに以䞋のプログラムを蚘入したしょう。

 「| 10進数 | 16進数 |」を衚瀺。
 「|--------+--------|」を衚瀺。
 Nを0から255たで繰り返す
     DLEFT(N & "      ", 6)
     H倧文字倉換(れロ埋め(HEX(N), 2))
     「| {D} | 0x{H}   |」を衚瀺。
 ここたで。

そしお、実行ボタンをクリックするず、以䞋のように衚瀺されたす。10進数ず16進数を区別するために、16進数の数倀には、0x30ずか0x5Fなど、「0x」を぀けたすので、この衚でも16進数に「0x」を぀けお衚瀺しおいたす。

  • 10進数ず16進数を䞊べお衚瀺させたずころ

    10進数ず16進数を䞊べお衚瀺させたずころ

プログラムを芋おみたしょう。なでしこで10進数の数倀を16進数に倉換するずきには、『HEX』関数を䜿いたす。このプログラムでは、「繰り返す」構文を利甚しお、0から255たでの数倀を繰り返し、16進数に倉換しお出力したす。その際、衚が厩れないように、スペヌス(空癜文字)や「0」の文字で幅を埋めおを出力したす。巊からN文字を取り出す『LEFT』関数や、任意の桁の「0」で数倀を埋める『れロ埋め』呜什を利甚しお、幅を合わせおいたす。

どうしおコンピュヌタヌで16進数を䜿うの

それで、どうしおコンピュヌタヌで16進数なんおものが䜿われるのでしょうか。そもそも、コンピュヌタヌは、0ず1で動いおいたす。これは、コンピュヌタヌの䞭で、電流が流れおいる状態をオン(1)、流れおいない状態をオフ(0)ずしお情報を扱っおいるこずを意味しおいたす。぀たり、コンピュヌタヌでは、0ず1の矅列によっお情報凊理をしおいたす。それで、コンピュヌタヌでは、0ず1だけで数倀など様々なデヌタを扱わなくおはなりたせん。いったい、0ず1だけでどのように数倀を衚珟できるでしょうか。

そこで登堎するのが『2進数』です。2進数ずは、0ず1の二皮類で数倀を衚す方法です。2進数では、0,10,11,100,101,110,111...ず数倀を衚珟したす。10進数の7が2進数の111ずなり、10進数の10は2進数で1010ずなりたす。

なでしこで2進数を衚瀺しおみよう

それでは、もう少し具䜓的に2進数に぀いお知るために、10進数、16進数、2進数ず䞉぀の倀を䞊べお衚瀺するプログラムを䜜っおみたしょう。残念ながら、珟行のなでしこv3には、倀を2進数に倉換する機胜はありたせん。そこで、2進数に倉換する関数を䜜っおみたした。

 ●(Vを)二進数倉換凊理
   1
   結果0
   (V > 0)の間
     結果結果2×
     INT(÷2)
     ×10
   ここたで。
   結果を8でれロ埋めしお戻る
 ここたで

 # 衚を䜜る
 「| 10進数 | 16進数 | 2進数    |」を衚瀺
 Nを0から255たで繰り返す
     NO=HEX(N)を2でれロ埋め
     VV=LEFT(N & "    ", 4)
     BIN=を二進数倉換凊理
     「| {VV}   |   0x{NO} | {BIN} |」を衚瀺
 ここたで

プログラムをなでしこで実行しおみたしょう。以䞋のように衚瀺されたす。

  • 10進数/16進数/2進数の衚を衚瀺する

    10進数/16進数/2進数の衚を衚瀺する

2進数ず16進数のたずめ

この衚を芋るず分かりたすが、10進数の10は、2進数で「1010」ずなりたす。非垞にキリが悪いですね。そこで、2進数では「0000」から「1111」たでを䞀区切りずしお考えるようになりたした。2進数の「1111」ずは、10進数の15、16進数の0xFです。こうしお芋比べるず、2進数を扱うのに、10進数より16進数の方が、分かりやすく感じたせんかそれで、コンピュヌタヌでは、16進数を䜿う機䌚が倚いのです。前回玹介した文字コヌド衚の䜜成においおも、基本的に16進数が利甚されおいたした。

今回は、16進数や2進数の䞀芧衚を衚瀺するプログラムを䜜っおみたした。実際に、プログラムを動かしお、理解を深めおいきたしょう。そうするなら、ちょっずコンピュヌタヌの気持ちが分かった気になるでしょう。

なでしこナヌザヌ「EZNavi.net」さんぞのむンタビュヌ

さお、なでしこのWebサむトを芋おいるず、頻繁に「EZNavi.net」ずいうキヌワヌドを芋かけるこずでしょう。これは、Webサむトのようにも芋えたすが、個人のハンドル名(ネット䞊のペンネヌム)です。EZNavi.netこず、望月たさずさんは、なでしこのWebサむトで質問できる「質問掲瀺板」や、プログラムを投皿できる「アプリ掲瀺板」などを運営しおくださっおいたす。たた、展瀺䌚の出展などのコミュニティ掻動を牜匕しおくださっおいたす。むンタビュヌしおみたす。

・クゞラ飛行机以䞋、クEZNavi.netさんは普段どんなお仕事をされおいるんでしょうか。
・EZNavi.net以䞋、E車やスマホなどの粟密郚品を䜜る䌁業で働いおいたす。仕事でプログラミングをしおいるのかずよく聞かれたすがたったく無く、力仕事が倚い仕事です。
・ク掲瀺板や゚ディタなど開発しおくださっおいるので、それは意倖ですね。ずころで、EZNavi.netさんは、積極的に開発やコミュニティ掻動に協力しおくださっおたすが、䜕がモチベヌションになっおたすか
・E私にずっお、アむデアがモチベヌションです。クゞラ飛行机さんからアむデアを頂くこずもありたすが、オヌプン゜ヌスカンファレンスなど、なでしこの展瀺䌚でナヌザヌさんから盎接頂いたアむデアも盞圓反映しおいたす。
・ク䟋えば、どんなアむデアですか
・E以前よりナヌザヌさんから「掲瀺板をスマホ察応にしおほしい」ずいう倚くの意芋もありたしたが、「䌚瀟で確認するのでサむトは掟手じゃないようにしおほしい」ずいったちょっず面癜いアむデアを頂くこずがありたした。そこで䜜ったのが、最近公開したスマホ察応の質問掲瀺板、アプリ掲瀺板だったりしたす。
・ク確かに、それは盲点でしたね。
・E小さいアむデアであっおも、クゞラ飛行机さんや私にずっおは倧事なこずだったりするかもしれたせん。
・ク確かに。小さなアむデアでも、実珟できたずきの達成感は倧きなものですよね。
・クずころで、ずばり、なでしこの魅力は䜕でしょうか
・Eクゞラ飛行机さんの人柄があるのかもしれたせんが(笑)、なでしこの魅力は柔軟寛容さがある所です。
・ク柔軟ず寛容ずは、ナニヌクな着県点ですね。具䜓的には、どんな点ですか
・Eなでしこは、生掻にも仕事にも䜿えたす。その䞊、なでしこではスマホ察応、教育などでも䜿えるように進めおおり柔軟な環境、䞖の䞭にも察応しおいるず感じおいたす。どんな方にもプログラミングを䜓感しおほしいずいうスタンスであり、寛容さが唯䞀無二であり、自分が支えたいず思っおいる理由の䞀぀でもありたすね。
・ク䞻開発者の私が聞くのも倉かもしれたせんが、来幎の「なでしこ」はどうなるず思いたすか
・Eやはり、なでしこが飛躍できる幎になるのではないでしょうか。「スマホでも気軜に動かせる」ずいうのは将来に向けたキヌワヌドだず思っおいたす。タブレットをメむンに䜿ったプログラミング教育は、Scratchを利甚したものなど、広がっおきおいたす。
・クScratchはブロックを組み合わせおプログラミングできるツヌルですね。タブレットでも動くので、教育甚途で掻甚されおいたすね。
・Eはい。実は、䞭孊生で割、高校生は割以䞊持っおいるずいわれおいるスマホですが、シニア䞖代も5割近くの人が持っおいるんですよ。自宅でスマホさえあれば、プログラミングの勉匷ができお、アプリの開発ができるようになるずいうのは重芁です。私も、なでしこが最も生掻に身近な蚀語だず思いたすので、これをしおいきたいですね。
・クそうですね。今回は、むンタビュヌに応じおくださり、ありがずうございたした。今幎も共に、なでしこを盛り䞊げおいきたしょう