「このブログ、土日祝の更新はしてないんだけど、せっかくの三連休に学習が足踏みするのも勿体ないよね。」
「いつもの週末の1.5倍の時間があるからね!今がチャンスだよ!」
「何か特別にやるの~?」
「今回はね、多くの人がつまづく2進数をマスターしちゃおう!」
「そして、まだ金曜の20時過ぎだけど、こっそりフライングで始めちゃうよ。」「0と1のアレかー。」
「よくわかんなくて困ってるんだー。」「しっかり基本をマスターすれば大丈夫だから、頑張ってみよう!」
「ちょっと長い説明になるから三連休を利用して、じっくり読み進めてちょうだい。」「まず最初に○進数ってのはどういう意味かを理解しよう。」
「2進数は0と1の2つしかなくて、16進数は0~9、A~Fの16個しかないんだよね?」
「まぁそうだね。でも丸覚えじゃなくてもっと、応用の効く覚え方をしようか。」
「○進数てのは各桁が○になる時に繰り上がっていく数字って事なんだ。」「余計に難しそう・・・。」
「まぁ実例を見てみればイメージがわいてわかりやすくなるよ。」
「最初に、我々が生活の中で普通に使っている10進数をおさらいしてみよう。」「え?10進数って1・2・3・4・5・6・7・8・9・10って普通の数字だよね?」
「おさらいって要る?」「何気なく使っているけど、深く考えた事ないでしょ。そこを掘り下げてみよう。」
「さっきの言い方に当てはめると、『10進数てのは各桁が10になる時に繰り上がる』って事になるね。」
「1の位が0から始まって9まで増えて、次の10になるタイミングで繰り上がる。」
「また1の位が0に戻って、10から11・12と増えていって19から次の20になる時に10の位が+1される。」
「10の位も10・20・30・・・99までいったら次で10の位から1つ繰り上がって100だね。」「う~ん、なんとなくわかるけど、頭に入りにくいなぁ。」
「じゃあお金で考えよう。使うのは1円玉と10円玉と100円玉くらいで良いかな。」
「どうやるの?」
「1円玉が10個集まると10円になって、10円玉が10個集まると100円になる。さっきの10進数の考え方と同じだよ。」
「あ~!これなら簡単だぁ!」
「ね。簡単でしょ?」
「もう10進数は大丈夫だね。次はいよいよ2進数に進もう。」「2進数はさっきの言い方に当てはめると『各桁が2になる時に繰り上がる数字』ってことだね。」
「先に10進数をもうちょっと振り返るかな。10進数って『一桁の数字』では『じゅう』ってないよね。あるのは0~9で、あとはそれの組み合わせ。」「そうだね。10は既に2ケタだもんね。」
「0~9の数字を組み合わせて10という値は表せるけども、実際に文字としては10の位の1と1の位の0の組み合わせなんだ。1桁の数字、1文字だけでの『じゅう』はないんだ。」
「繰り上がりって、よくよく考えたらなかなか『深い』ねー。」
「さて、2進数の場合は一桁の数字としては2は存在しなくて0~1まで。2は0と1の組み合わせで表現されるんだ。」
「そっか0、1ときて2になる時に繰り上がるから実際には2って数字は出番がないんだね。」
「そういう事。」
「なので、2進数では0、1、の次はケタが繰り上がって10(イチゼロ)になって、次は11、また次に繰り上がって100(イチゼロゼロ)、次はまた一番下の位から増えていって101、110、111ってなるんだ。」「ものすごい勢いで桁が増えていくね。」
「そうだねー。さて、ここでまたお金を使うかな。」
「今度は何円玉を使うの?」
「今度は架空のお金も使んだ。」
「使うのは、1円玉(0001)、2円玉(0010)、4円玉(0100)、8円玉(1000)・・・というように倍々でいくよ。」「だんだん難しくなってきたぞ~。」
「まずは1円玉が一つの時は1だね。これは2進数の書き方なら『0001』ってところかな。桁は見やすく4ケタにしてるけど、別に『00000001』でも構わないよ。」
「1円玉が1個で1なのはまぁ大丈夫。」
「次は1円玉が2つだ。金額でいうと2円になったね。2になる時に桁が繰り上がるルールなので、各硬貨(桁)は1枚までしか持てないので、これは2円玉に両替される。2進数で書くと『0010』だよ。」
「1円玉2個で、2円玉が1個になるんだね。」
「次はまた1円玉?」「そのとおり。2円玉+1円玉だ。金額でいうと3円で、2進数で書くと『0011』だよ。まだ1円玉も2円玉も1枚ずつだから繰り上がりはない。」
「なるほど、なるほど。それぞれ○円玉の個数を0か1で表して、1円玉は一番右の桁で、2円玉は次の桁、4円玉はさらに次の桁なんだね!」
「この状態に更に1円玉を足すとどうなるかな?」
「1円玉が2枚になるから繰り上がるよね。」
「1円玉2枚が2円玉に両替されるから、1円玉が0枚と2円玉が2枚だね。あれ?2円玉が2枚になっちゃったからこれも両替?」「そうだね、それは4円玉に両替されるから、最終的には1円玉0枚と2円玉0枚と4円玉1枚になるよ。」
「2進数で書くと『0100』って事だね。」
「これにまた1円玉をプラスすると・・・」「4円玉1枚と1円玉1枚だから『0101』だね!」
「お、わかってきたじゃ~ん。」
「更に1円玉を追加すると、1円玉2枚と4円玉1枚になって・・・両替(繰り上がり)して2円玉1枚と4円玉1枚。つまり『0110』だ。」「じゃあ8円玉と4円玉と2円玉と1円玉が全部そろったらどうなるの?」
「その時は桁が更に増えて16円玉の登場だ。」
「そっかどんどん増えていくんだね。」
「そういう事。」
「でまぁ、頭の中で硬貨に当てはめても良いんだけど、右側から1の位、2の位、4の位、8の位、16、32,64、128、256・・・といった具合に覚えておくと便利だよ。」「桁が繰り上がるたびに、倍になるんだね!」
「ためしに・・・『00100100』は10進数に直すといくつかわかるかな?」
「1・2・4・8・16・32・・・4の位と32の位が1だから」4円玉と32円玉が1枚ずつだね。」
「32+4で36?」「そうそう。正解~!」
「どうやらマスターできたかな?」
インターネット上のFTPサーバに、ファイルをアップロードしようとしたができなかった。
逆に、FTPサーバ上にあるファイルはダウンロードできた。
アップロードができなかった原因となりうるものを2つ選びなさい。
a.テキストファイルをバイナリモードでアップロードしようとした。
b.使用したFTPのユーザ名に対し、FTPサーバへの書き込み権限が設定されていなかった。
c.アクティブモードでアクセスしていた。
d.アップロードしようとしたファイルサイズに対して、FTPサーバのディスク容量が足りなかった。
「ダウンロードができたって事は回線の故障とかはないんだよね?」
「そうだね。よく気付いたね。」
「トラブルシューティングでは、そうやって問題を切り分けていく事が大切だよ。」「じゃあ、何が問題なんだろう・・・?」
「そもそもFTPサーバーってどんなものかよく分からないや。名前はよく聞くんだけどね~。」「FTPサーバーってのはFTPで利用するためのサーバーだよ。」
「FTPってのはFile Transfer Protocol の略でファイル転送の為の通信のルールだね。」「ファイルの転送に使うってこと?」
「そうだね。」
「あれ?でもwebフラウザ(インターネットエクスプローラーとか)でもできるよね。」
「更新プログラムのダウンロードとか、SNSに画像をアップロードしたりとか。」
「あれってhttpじゃなかったっけ?」「良い所に気づいたね。」
「httpもFTPもどちらでもファイルの送受信はできるんだけど、FTPの方がファイル転送専用のシンプルなプロトコルなので環境にあまり左右されずに使えるのと、権限の設定が色々できるところが便利なんだ。」「へぇ~、権限の設定ってどんな感じなの?」
「まず、FTPではIDとPWを使ってログインしてから使うのが基本なんだ。」
「そして、IDごとにどのフォルダが見えるとか、見えても削除や書き込みに関してはまた別に可能・不可能の設定があったりするんだよ。」
「権限の設定によって、間違えてファイルが削除されるとか、上書きされるとか、そういった事が防げるんだ。」「じゃあ、その設定によっては、ダウンロードはできてもアップロードができないって現象が起こったりするんだね。」
「その通りだね。つまり選択肢 b が一つ原因となりうるものだね。」
「ほかの選択肢はどうだろう。モードとかよく分からないや・・・。あ、でも d の容量不足って原因っぽくない?」
「そうだねー。基本的なところで、サーバーの容量が足りない場合はファイルをアップロードすることはできないね。」
「ダウンロードする分にはサーバー上の容量には変化がないから、残りの容量が少ししかなくても問題ないけど、アップロードする時は空き容量以上の大きさのファイルは無理だね。」
「つまり、正解は b と d 、わかっちゃったね~。」「うん、でも a と c もついでだから説明聞いときたいな。」
「お、なかなか良い心掛けだね。」
「じゃあもう少し説明していこうか。」
~~~~~~~~~~~~~~~~~~~~~~~「まずは選択肢 a のバイナリモードってのから説明するね。」
「ファイルを転送する時に『ある処理』を加えるか加えないかで、アスキーモード(Asciiモード)とバイナリーモードの2つがあるんだ。」「どんな処理をしたりしなかったりするの?」
「改行ってあるでしょ。あれを変換しちゃうんだ。」
「実は改行にはいくつか種類があって、OSによって違ったりするんだよ。」
「まずは、CR(キャリッジリターン)とLF(ラインフィード)の2種類があって、OSによってはCR+LFだったり逆にLF+CRの場合もあるんだ。」「CR?LF???なんだか頭が混乱してきたよ。」
「これはね、昔ながらのタイプライターを思い浮かべてもらうと分かりやすいよ。」
「タイプライターは紙が1文字分づつ横に移動して活字で印字されて、紙の端まできたらガシャっと手で戻すでしょ。」「あー、洋画とかで見たことあるかも~。」
「あの右端から左端に戻す動作がキャリッジリターンだ。」
「そうか!戻るからリターンなんだね。」
「そうそう、ちなみにキャリッジはタイプライターの紙を固定しているパーツの事だよ。」
「そして、左端に戻っただけだと、先にタイプした文字の上にさらに重ねてタイプしちゃうので、1行分紙を上方向に送る動作がラインフィードだよ。」
「ラインは行の事で、フィードは供給するとか与えるとかいう意味だね。」「なるほどね~。単語の意味と動作のイメージが合わさると分かりやすいや。」
「でも、これだったら改行ってCRとLFが1セットじゃないとダメなんじゃないの?」「まぁPCの中は物理的に動くわけじゃないからCRだけやLFだけでも改行とみなしてくれるんだ。」
「その大らかさがOSごとの違いを生んでしまうんだけどね。」「ははぁ~ん、その違いをなんとかするために『改行を変換する』処理が必要なんだね!」
「よく分かったね!その通りなんだ。FTPでファイルを転送する時に相手のOSを確認して、それに合わせて『改行』を変換してファイルを送るのがアスキーモードなんだ。」
「じゃあバイナリーモードはなにも変換しない方?変換してあげないと不便じゃないの?」
「ふふふ、逆に変換すると困ったことになる場合もあるんだよ。」
「この改行は文字と同じで人間の目に触れない裏側ではコードで表現されるんだ。CRは0DでLFは0Aね。」
「テキストファイルなら変換すれば良いんだけども、もし画像ファイルとかをアスキーモードで転送したらどうなるかな?」「画像ファイルには改行がないから変換されないんじゃないの?」
「所がどっこい!画像ファイルも、人間の目に触れない裏側では2進数や16進数のコードで表現されているもんだから、たまたま『0D』とか『0A』って箇所が有ればそれを改行と勘違いして変換しちゃうんだ。」
「ええ~!?それじゃ内容が変わっちゃうよ。」
「だから変換しないバイナリーモードも必要なのか~。」「PCはこういうのは生のデータ(コード)で判断するからね。人間みたいに『これは文書のファイルでこの部分は改行で・・・』とか考えないんだ。」
「なるほどね~。バイナリーモードがどんなものか分かったけど、結局アップロードできるできないって話とは違った次元の事だったんだね。」
「そうだね。まぁ、FTP関連の問題ではこういうのも出てくるから覚えておくと良いよ。」
~~~~~~~~~~~~~~~~~~~~~~~「じゃあ、残りのアクティブモードってのも覚えといた方が、ほかの問題で役立つかな?」
「もちろん!」
「これはFTPサーバーとクライアントPCが通信するために接続する際の手順の話なんだ。」「やっぱりアップロードできる・できないとは別の話なんだね。」
「これも2つで1セットで覚えておくと良いんだけど、アクティブモードとパッシブモードってのがあってね。」
「潜水艦のソナーみたいだね。」
「お、コムたろう君はマニアックな事しってるね。イメージは似たようなもんだ。」
「アクティブ=能動的、パッシブ=受動的っていみで、これは他にも電気回路や投資信託の手法なんかでも使われる言葉だね。」「へぇ~、いろんな所で使われてる言葉なんだね。」
「まぁ、話を戻すと、この2つのモードはFTPサーバー目線でアクティブかパッシブかって覚えると分かりやすい。」
「サーバー側からつなぎに行くのをアクティブ、サーバーがクライアントからの接続を待つのがパッシブね。」「この2つはどういった違いがあるの?」
「ファイアウォールが有る場合に問題になるんだ。」
「クライアントPCの側にファイアウォールがあると、外から入ってこようとする通信を遮断しようとするから、サーバー発のアクティブモードでは接続に失敗する事があるんだ。」
「逆にクライアント発でサーバー側が受けのパッシブモードだとファイアウォールがあっても接続が確立できるんだ。」「そんな意味があったのかぁ。これも覚えておくとなにかの役に立ちそうだね!」
「色々と疑問が解消できてすっきりしたよ!」
【 第24回 第x部 第x問 解答&解説 】
[解答]b, d.
[解説]
a.誤り。 ファイル転送の形式の違いにより、アップロードできなくなることは無い。ただし文字化けなどの不具合が発生する可能性がある。
b.正しい。 書き込み権限が不特定多数に与えられていると、ウィルス汚染したファイル等のアップロードをされてしまう危険性があるため、一般的にはダウンロードを許可していてもアップロードは許可しない場合が多い。
c.誤り。 アクティブモードでアクセスしている場合、アップロードではなく、ダウンロードがうまくいかないケースが多い。
d.正しい。 FTPサーバの空き容量を超えるサイズのファイルをアップロードしようとするとうまくいかない。原因として考えられる。