投稿
イーブン rein-2000
うーん……… 2進数でA=&B0011というように 代入したりしてプリントすると 3って表示されるし、Aの中身は &B0011ではなく、3に なるんだよね……… これを&B0011のままプリントしたり 比較に使えないものか……… それと変数をA#というように 書いてもエラーにならない事に 気がついたんだけど、 これって一体何型なんだろう? 誰か疑問に答えて いただけないでしょうか?
0そうだね
プレイ済み
返信[1]
親投稿
ゆうたん yu-tan-sama
A# は実数型でございます 小数点が使えるデータ型ね 二進数でプリントするのは今んところ自作するしかないかな?たぶん 比較するだけなら、入れたときに二進だったかどうかなんて気にしなくていいです あくまで人間がわかりやすいからそう表記してるだけで、内部的には一緒ですし
0そうだね
プレイ済み
返信[2]
親投稿
イーブン rein-2000
回答していただき ありがとうございました! 実数型ってプチコンに必要なのかな… 普通の変数でも、少数は扱えるし… なんであるんだろうなぁ………
0そうだね
プレイ済み
返信[3]
親投稿
ゆうたん yu-tan-sama
理由はOPTION DEFINTにあります これを書いておくと普通の変数が整数型に変わります 処理速度も速くなります ただ、たまーに小数を使いたいこともあるのでそのときは末尾に#をつけてあげます
0そうだね
プレイ済み
返信[4]
親投稿
なお naosus
数値を16進数表記の文字列に変換するHEX$があるのに、2進数表記に変換するBIN$関数がないのは微妙に不便ですよね… ので、試しに作ってみました。ご参考までに。バグあったらごめんなさい。(正の整数以外は考慮してません) この関数では、ご質問のケースのような先頭の0は消えてしまうので、桁数を揃えたい時は工夫をば。
0そうだね
プレイ済み
返信[5]
親投稿
けい kei0baisoku
ゆうたんさんの返答の中に含まれているとは思うのですが、知らないと読んでも気付かないと思ったので補足してみます。 >実数型ってプチコンに必要なのかな… >普通の変数でも、少数は扱えるし… >なんであるんだろうなぁ……… 実はプチコンは「デフォルトは実数型」になってまして、つまり A=1.5 と書いても A#=1.5 と同じことになります(名前が違うので変数としては別々ですが) 省略しても良いのですが、私は見て分かるようにしたかったので全部省略せずA#って書いてました。 あと、2進数表記の方がビットが直感的に分かりやすいですが、慣れた人は皆16進で扱いますので、そっちに慣れてみるのもありかもしれません。 桁数も少なくて済みますし。
0そうだね
プレイ済み
返信[6]
親投稿
ツララ LongIceSword
整数型だと小数点以下の数値は切り捨てになりますよ。 なので三角関数やRNDF()のように小数を扱う関数の戻り値を入れる変数をA%の様な整数型にするとほぼ0しか返ってこなくなります。 整数型の変数へ代入前に×POW(10,N)などして桁を上げてやればFLOOR()の省略として使えますけど。
0そうだね
プレイ済み
返信[7]
親投稿
イーブン rein-2000
へー………なるほどなぁ……… 実数型必要ないじゃん!って 思ってたんだけど、 OPTION(スペルが合ってるかは知らん!)でデフォルトを整数型に するときに必要なんですね~……… …ってそれで処理速度が上がるなんて初めて聞きました!ビット演算については、ネットでみっちり勉強してきます。ありがとうございました!ついでにシフト演算(ナニソレ)ってのをちょっと聞いたのでそれも調べてきます。
0そうだね
プレイ済み
返信[8]
親投稿
ツララ LongIceSword
ちなみにシフト演算を使うと自動的に整数型に変換されるみたいですね。 右シフト(1/2を掛けていく)して小数点以下になると0になったので。
0そうだね
プレイ済み