掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
10進数から2進数に変換する効率のいい方法 (ID:107054)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VBユーザにはビット演算が苦手な人も少なくないので、 一番簡単なルールは、16進変換したりせず、すなおに 「2で割ったあまりを回答文字列の左に追加する」処理を 商が0になるまで繰り返す。でしょう。 21億以下の整数ならこれで大丈夫です。 Longの限界を超える整数の場合、一工夫いります。 下の例だと79228162514264337593543950330まで大丈夫です。 ちょっと変なことしてます。 Option Explicit Private Sub Command1_Click() Dim buf1, buf2, buf3 buf1 = Text1.Text buf2 = "" Do Until buf1 = "0" buf2 = Sgn(InStr(1, "13579", Right(buf1, 1))) & buf2 buf3 = Split((CDec(buf1) / 2), ".") buf1 = buf3(0) Loop Text2.Text = buf2 End Sub Private Sub Form_Load() Text1.Text = "79228162514264337593543950330" Text2.Text = "" End Sub これ以上の数だと、byte配列に入れて、 自前で繰り下がり計算することになります。 (アセンブラだと右シフトしていくだけなんですけどね。)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.