HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0930
Citric十進数から二進数へ2未解決


Citric

リンク

2006/9/30(Sat) 22:29:10|NO.2748

こんばんは。

10進数の数字を2進数にしてそのまま
文字列に変えることは出来るのでしょうか?

お願いします。



この記事に返信する


GENKI

リンク

2006/9/30(Sat) 23:06:54|NO.2752

 HSP開発Wikiの「特定のビットをオフ(0)にする」
http://hspwiki.nm.land.to/?cmd=read&page=%BE%AE%A5%EF%A5%B6%2F%A5%D3%A5%C3%A5%C8%C1%E0%BA%EE&word=2%BF%CA%BF%F4#o21c971e
にちょうどいい文字列変換のモジュール化されたサンプルがあります。
参考になりますでしょうか。

以下のことをあたまに置いて↑のサンプルを見るといいです。
----
a = 2 ;十進表記
b = 0b010 ;二進表記
if a=b : mes "a = b = "+b : else : mes "a ≠ b"
stop
----



Drip

リンク

2006/9/30(Sat) 23:11:19|NO.2753

Dripです。

 Citricさん、こんにちは。
HSP3には、10進数から2進数に変換する命令や関数は用意されていないようですね。
この場合は自分で変換する命令や関数を用意してやる必要があります。
やり方はいくつかありますが、ユニークな方法のひとつとして、10進数を2でどんどん割っていき、
割った時のあまりを文字列として格納していくやり方が上げられます。
その方法を使い、10進数を2進数に変換するサンプルを以下に示します。

#module #defcfunc v10to2 int p if p=0:return "0" v="":a=p repeat if a=0:break x=a\2 v=""+x+v a=a/2 loop return v #global mes v10to2(32) //カッコの中に2進数に変換したい数値を入れて実行してみましょう。 //文字列として2進数に変換された結果が出力されます。
 さてなぜこのようなやり方で2進数が求まるのでしょうか。
googleで「2進数 10進数」などと検索すると色々な資料が見つかるので、是非調べてみてください。
これを理解すると、より数値型変数を効率良く、そして便利に扱えるようになりますよ。



ONION software Copyright 1997-2023(c) All rights reserved.