ページ 11

「Mid$」関数を数字型のまま利用したい

Posted: 2006年2月26日(日) 19:40
by NON
少し分かりにくいかもしれませんが、
たとえば数字型の「1F」で「1」と「F」を別に取り出すみたいなことです。
こんなことはできるでしょうか?

Posted: 2006年2月26日(日) 21:19
by イグトランス
 1Fとは十六進法でよいですね?
それならばビット演算をうまく使うことです。
十六進法の1桁は4ビットで表現されています。

コード: 全て選択

#strict
#prompt

Dim src = &h1f As Byte
Dim dst[ELM(2)] As Byte

dst[0] = src >> 4
dst[1] = src And &h0f

Print Hex$(dst[0]), Hex$(dst[1])

Posted: 2006年2月27日(月) 17:51
by NON
すみません。
16進数の場合はいいのですが、この対象になるのは2~36進数なので、
「Str$」関数の逆、みたいなのがあると良いのですが・・・。
1つ1つIF文でやるほかはないでしょうか?
ご提示くださったコードはビット演算が分からず、
おそらく中枢と思われる

コード: 全て選択

dst[0] = src >> 4
dst[1] = src And &h0f
の意味がよく分からない状態です。
まだまだ初心者で迷惑をおかけします。

Posted: 2006年2月27日(月) 19:50
by OverTaker
Str$()関数の逆とは、文字列を数字にするということですか?
それでしたらVal()関数がありますよ。

http://www.geocities.jp/bfrqf368

10進数<>n進数

Posted: 2006年2月28日(火) 18:06
by EIJI
10進数からn進数の変換ではChr$関数,n進数から10進数の変換ではAsc関数を使用します。

10進数<>2進数は計算できますよね?

36進数といえば、ちょうどA~Zまでを使用する学校の宿題みたいなので答えは自分で考えてみてください。

Posted: 2006年2月28日(火) 18:37
by NON
OverTaker様
こんな関数があったんですね。何回か検索はしたのですが
気が付きませんでした。

EIJI様
10進数<>2進数は計算できますよね?
文字列を数字にできればほぼできるはずです。一応作ってはあるので。

皆様ありがとうございました。