mugen 各桁フラグ作った。

 bit演算で01の32個のフラグを作れるのは分かった!


 次は10進数のままで0~9の各桁フラグを作ろう。


21474836417で10桁です。少ないな。10桁目は2までしか使えない、実質9桁。


 頭の体操がてら組み立ててみた。


 trigger1=var(0):=1111111111

 一桁目を取り出すには。

10分の1して、floorで小数点を払い、10倍する。その後元の変数と減算した差が一桁目の数値となる。

簡単に言うと一桁目を0にして元の変数と減算すればいい。

trigger1=var(1):=(var(0)-10*floor(var(0)*0.1))

1111111111が10分の1で111111111.1になりfloorで111111111.0になって10倍すると1111111110になったので元の変数と減算すると1が出てくる。var(1)に入って終わり。簡単。

 整数変数で少数使うなだけど最終的に整数になればよいのだ。


 2桁目は

trigger1=var(2):=(floor(var(0)*0.1)-10*floor(var(0)*0.01))

1111111111が100分の1で11111111.11になりfloorで11111111.00になって【10倍】すると111111110.0になる。元の数字より一桁少ない1億になる。

 一桁目を0にしないと1~9で取り出せないので。

 その後、元の変数1111111111を10分の1して111111111.1にfloorで払って111111111.0元の数値より一桁少ない1億です。

 これで減算すると1桁の数値が出てくる。1です。

 【】でくくった場所で100倍して1111111100元の数値1111111111と減算すると2桁の数値11がでてきます。

 元の数値を10分の1して111111111.1 1桁目を払い111111111.010倍して1111111110からの減算なら10です。


も一個やんなきゃいけない。

 3桁目は

trigger1=var(3):=(floor(var(0)*0.01)-10*floor(var(0)*0.001))

-10*floorの部分は固定でそれ以外は0が増えていきます、汎用化しましょう。


N桁目

trigger1=var(2):=(floor(var(0)*0.1^A)-10*floor(var(0)*0.1^B))

A=(取り出す桁の数字-1)

B=(取り出す桁の数字)

 例えば1桁目ならA=0,B=1なので

trigger1=var(2):=(floor(var(0)*0.1^0)-10*floor(var(0)*0.1^1))

となるので、一桁目で出てきた。

trigger1=var(2):=(floor(var(0))-10*floor(var(0)*0.1))

この式が出てきます。^0は1です。


 ちゃんと読めばわかりやすくかけた気がする。

さんすーだぞさんすーもうすーじでだめだってひとはあきらめて。

 1234567890でやったほうが分かりやすかったかも、書き直すのめんどいからいいや。

 引き算の答え何だっけでちょっと考えた。加減乗除和差積商にゃんね。




  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

ブログ代わりに使うやつ @kakuriyuki

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

フォローしてこの作品の続きを読もう

この小説のおすすめレビューを見る