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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
NON

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

#1 投稿記事 by NON »

少し分かりにくいかもしれませんが、
たとえば数字型の「1F」で「1」と「F」を別に取り出すみたいなことです。
こんなことはできるでしょうか?
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#2 投稿記事 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])
NON

#3 投稿記事 by NON »

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

コード: 全て選択

dst[0] = src >> 4
dst[1] = src And &h0f
の意味がよく分からない状態です。
まだまだ初心者で迷惑をおかけします。
OverTaker
記事: 231
登録日時: 2005年5月31日(火) 17:14
お住まい: 茨城県

#4 投稿記事 by OverTaker »

Str$()関数の逆とは、文字列を数字にするということですか?
それでしたらVal()関数がありますよ。

http://www.geocities.jp/bfrqf368
EIJI
記事: 25
登録日時: 2005年9月17日(土) 13:15
お住まい: 香川

10進数<>n進数

#5 投稿記事 by EIJI »

10進数からn進数の変換ではChr$関数,n進数から10進数の変換ではAsc関数を使用します。

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

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

#6 投稿記事 by NON »

OverTaker様
こんな関数があったんですね。何回か検索はしたのですが
気が付きませんでした。

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

皆様ありがとうございました。
返信する