投稿
ひまじん w.g.morugan
この1,2,4,8,16,32……………… はどのような意味がありますか?
3そうだね
プレイ済み
返信[1]
親投稿
printf printf
ビット表現の位置を表してますねー 1=0001 2=0010 4=0100 8=1000 と言った感じですね 詳しくは公式サイトにある命令表を見たらいいと思いますよー
0そうだね
プレイ済み
返信[2]
親投稿
数字の意味をちゃんと理解しようとすると2進数の知識が必要になるのでわからないうちはそういうものだと思ってしまった方がいいかもです。 ただちゃんと知りたかったら2進数を覚えて公式サイトの命令表の記述をチェックすれば分かると思います。
0そうだね
プレイ済み
返信[3]
親投稿
ボタン(BUTTON)というのはビット演算というスイッチみたいなもので管理しています。0が押されてない、1が押されてるという意味。 0と1の2進数(0、1、10、11、101・・・と2つの数字だけで桁が繰り上がる数。丁度10進数だと9+1が10になるように2進数では1+1は10と繰り上がる)でボタンを管理するという事は 1なら上、10なら下、100なら左、1000なら右・・・という表し方になります。 この2進数は&Bで表現できますよ(試しにPRINT &B1000と入力して独行してみて下さい)。 本題に戻りますが、10は1の次なので10進数だと2、100は10の次の次なので10進数で4、・・・と2進数を10進数で表したのが1,2,4,8,16,32・・・となるのです。 ちなみに1001だと上と右が押されている(10進数だと9)状態だという事です。
0そうだね
プレイ済み
返信[4]
親投稿
1,2,4,8,16,32,64…4096 というのを、二進法(0と1だけ)にすると、 1,10,100,1000,10000,100000,1000000…1000000000000 となる。 全部1は1つだけで位置も重複していない。 つまりこれでどのボタンを同時に押さえているか判断できるってこと。
0そうだね
プレイ済み
返信[5]
親投稿
bigslope bigslope
ボタンが複数押された時の為に、このような数値の返し方をしています。 例えば、上と左を同時に押すと、1+4=5が返ってきます。 これを2進数に分解すると、printfさんの説明の通りになります。
2そうだね
プレイ済み
返信[6]
親投稿
10進数が10で繰り上がるように2進数は2で繰り上がります。そして10進数の1桁目と2桁目がどの数字でもお互いが干渉しないように2進数は各桁(ビット)が干渉しないので、複数の状態を同時に保管するのに都合のよい感じになっている、みたいな感じです。 といいつつ、どんな説明しても理解してない人には複雑に感じてしまうような気がしています…
0そうだね
プレイ済み