プレイ日記
サファイア nmskt4649v
2進数の仕組みを教えて下さい。 また、バイナリーは、0と1と聞いた気がします。 バイナリファイルでの文字列や変数などの保存方法も出来たら教えて下さい。
3そうだね
プレイ済み
返信[1]
親投稿
Hanzo rzsense
2進数=バイナリー(binary)です。バイナリーの「バイ」は「2つの」とか「両方の」とか、そういう意味です。 じゃあ、2進数って何?という話ですが、0から順に数えていくと、0,1となり、普通なら、次は「2」ですが、ところがぎっちょん、そうではなく、けたが繰り上がって「10」(イチゼロ)になります。さらに数えると、10,11ときて、次は思わず「12」と言いたくなる気持ちをグッとこらえて、けたを繰り上げ「100」(イチゼロゼロ)とします。 つまり2進数とは、0,1の2種類以外の数字を使いたくなると、けたの繰り上がりが発生する数のことです。 試しに、ご自身の片手の指を使って「00000」から「11111」まで数えてみましょう。0から31までを数えられるはずです。途中「グワシ」状態になって指が吊りそうになることがあるのでご注意ください。
1そうだね
プレイ済み
返信[2]
親投稿
********** itd12d
ANDとかORとかも2進数を使っています。 ここでは、5と7を使って考え方を簡単に解説してみます。5を二進数にすると101、5を二進数にすると111です。まず、2つの二進数を 101 111 という風に縦重ねます。 ANDの場合は、縦に重なった数がすべて「1」の場合は「1」が返り、それ以外は「0」が返ります。そのため、5 AND 7は 101 111 =101 なので、10進数に変換すると「5」になります。 しかし、ORの場合は、縦に重なったうちのどこかに1があれば「1」を返します。1が無ければ0です。なので、 101 111 =111 なので、10進数に変換すると「7」になります。
0そうだね
プレイ済み
返信[3]
親投稿
********** itd12d
ちなみに、文字列のDAT保存については文字コードに変換したり、独自で楽な変換方式を開発するといいと思います。
0そうだね
プレイ済み
返信[4]
親投稿
MIKI ifconfig
パペットさんが 3 桁の二進数で 0 から 7 まで表現できる事 を示しました。 3桁の各桁を a b c としますね。 この場合 0 から 7 ってのは a * 4 + b * 2 + c で計算できます。 000(二進数)の場合 a=0 b=0 c=0 なので 0 * 4 + 0 * 2 + 0 = 0 つまり 0 111(二進数)の場合 a=1 b=1 c=1 なので 1 * 4 + 1 * 2 + 1 = 7 つまり 7 って感じ。 ところがこの方法だと負の整数を表せない。 負の整数を表すには、一番左の桁にかける数を負にして a * -4 + b * 2 + c と解釈することになってます。 111(二進数)の場合 a=1 b=1 c=1 なので 1 * -4 + 1 * 2 + 1 = -1 つまり -1
0そうだね
プレイ済み
返信[5]
親投稿
Hanzo rzsense
2進数の計数のしかたが、何となくでもわかっていただけるように、「バイナリー時計」なるものを作りました。 添付を何とかがんばって入力していただき、お試しいただけると助かります。
0そうだね
プレイ済み
返信[6]
親投稿
サファイア nmskt4649v
Hanzoさん» 頑張って(ジブンデイウナ)コピーしました。 時間が表示されるのは分かりますが、その横の四角は何ですか? 色々変わるのが分かりますが意味が分かりません。 教えて下さい。
1そうだね
プレイ済み
返信[7]
親投稿
Hanzo rzsense
お疲れさまです。正直、公開枠がギリギリ一杯というわけでもないのですが、やはり節約して使いたいもので・・・ケチくさくて恐縮です。 まぁそれはそれとして、2進数とは、0と1の2つの数字だけで表現される数だということは既にご理解いただいていると思いますが、「バイナリー時計」では、この0と1を、それぞれランプの消灯/点灯で表しています。ランプが消灯しているところが0、点灯しているところが1というわけです。 秒の部分では、当然ながら数字が1秒ごとに1ずつインクリメント(カウントアップ)されるわけですが、ランプの消灯/点灯の様子をみると、何となく、規則性みたいなものが見えてきませんか?「バイナリー時計」は、そう言った規則性を何となーく感じていただくために作ってみました。
0そうだね
プレイ済み
返信[8]
親投稿
Hanzo rzsense
なお、私のプレイ日記に、Aボタンで10進数表示がオン/オフできるバイナリー時計を公開(と言っても、今回と同様、スクリーンショットによるソースコード紹介ですが・・・恐縮です)しましたので、もしよろしければお試しください。 10進数表示オフでも、現在時刻が瞬時にわかるようになれば、2進数は理解できたと言っても過言ではないと思います。
0そうだね
プレイ済み