• 締切済み

2進数→10進数への変換 また その逆

2進数→10進数への変換 また その逆 を作成したのですが、どのようにすれば良いのでしょうか? 宜しくお願いいたします

  • nao0
  • お礼率10% (50/483)

みんなの回答

回答No.5

私も考えてみました。(マイナスについては考慮していません。) あまりテストしてないので間違えてたらすみません。 '10進→2進 Function FromDecimalToBinary(X As Long) As String   Dim Y As String   If (X < 0) Then     Y = "Error"   Else     Do       Y = X Mod 2 & Y       X = X \ 2     Loop While (X > 0)   End If   FromDecimalToBinary = Y End Function '2進→10進 Function FromBinaryToDecimal(X As String) As Long   Dim i As Integer   Dim Y As Long   '2進チェック   If (Replace(Replace(X, "0", ""), "1", "") <> "") Then     Y = -1   Else     For i = 0 To Len(X) - 1       Y = Y + Mid(X, Len(X) - i, 1) * 2 ^ i     Next i   End If   FromBinaryToDecimal = Y End Function Private Sub Command1_Click()   '10進→2進 Label1 = FromDecimalToBinary(Text1) End Sub Private Sub Command2_Click()   '2進→10進 Label1 = FromBinaryToDecimal(Text1) End Sub

  • atokih
  • ベストアンサー率40% (12/30)
回答No.4

10進から2進ならなんとか intTestが10進で、intBit(1 to 16)が2進です If intTest And &H1 Then intBit(1) = 1 Else intBit(1) = 0 End If If intTest And &H2 Then intBit(2) = 1 Else intBit(2) = 0 End If :   以下同様に&H4から&H8000まで

回答No.3

No.2を回答した者ですが、 タイトルだけを拝見してカテゴリを算数の分野と思い込んで夢中で回答してしまいました。 したがってNo.2はVBカテでの回答ではございません。 大変失礼いたしました。

回答No.2

a進数のn桁目の数字がp(0≦p≦a-1)であるということは、 aの(n-1)乗がpあるという意味です。 ものすごくわかりにくい説明なので、例を使って具体的に説明します。 2進数の数「10011」を10進数であらわすとき、 2進数の「10011」というのは 2の4乗×1 (=16×1  =16 2の3乗×0 (=8×0   =0 2の2乗×0 (=4×0   =0 2の1乗×1 (=2×1   =2 2の0乗×1 (=1×1   =1 という意味ですから、 これを10進数であらわすと (16+2+1=)19になります。 また、10進数の「58」を2進数であらわしてみると 58=32+16+8+2   =(2の5乗×1)+(2の4乗×1)+(2の3乗×1)+(2の1乗×1) ですから、2進数であらわすと111010です。 ここまでくれば当たり前ですが、10進数の数字もおなじ意味です。 26053=20000+6000+50+3      =10000×2 + 1000×6 + 10×5 + 1×3      =(10の4乗×2)+(10の3乗×6)+(10の1乗×5)+(10の0乗×3) 自分でも説明が下手だと思いますが、わかっていただけたでしょうか。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

'A を2進数 Bを10進数とすると ' テキストボックス名を Text1とする ’ラベルをLabel1とする 'Text1に2進数を代入した時のサブルーチンに ----------------------- Dim A As String Dim B As Integer A = Text1.Text B=0 'K = 2の乗数とする K = 0 'LAはテキストA の長さ LA = Len(A) 'Aの文字列を右側から0か1かを調べる For I = LA To 1 Step -1  '1の場合  If Mid(A, I, 1) = "1" Then   'Bの値を増やす   B = B + 2 ^ K  End If  K = K + 1 Next I 'Label1に10真数を代入 Label1.Caption = B --------------------------- 考え方でいうとこんなところですか。 プログラムとしてはこのままでは善くないです。 TEXT1の値に01だけの集合であるかの判断が 必要です。 この場合 例えば  Aに 11 を代入すると B = 2~0 + 0~1 = 3 となります 8進数や16進数は関数があります。 ------------------------- 10進数から2進数への変換も必要なら 書きますが...いかがですか?

nao0
質問者

お礼

早速のご回答有難うございます  誠に恐縮ではございますが、宜しくお願いいたします

関連するQ&A

  • 2進数から16進数への変換、あるいはその逆について

    はじめまして。 高校の情報の授業で「2進数・10進数・16進数」を勉強しています。 どうしても2進数から16進数への変換、あるいは、16進数から2進数への変換の方法がわかりません・・・ 初心者でも分かりやすい解説をお願いします。

  • n進数から10進数に変換するには

    toString(n)を使えば10進数をn進数に変換できますよね。それとは逆に、n進数を10進数に変換するにはどうすればよいのでしょうか。 宜しくお願いします。

  • 『2進数→16進数の変換』などの総称は?

    プログラム作成の練習として、  2進数を16進数に変換  16進数を2進数に変換 などができる簡単なプログラムを作成しました。 これらのプログラムを全てまとめて何か日本語の名前をつけたいのですが、何とつけるのが適してるのでしょうか? 今は『進数変換』や『記数法変換』という名前を考えています。 数学に詳しい方や、数学が好きな方、アドバイスをお願いします。

  • 16進数から2進数への変換

    まったくの初心者で困っています(涙) 16進数から2進数への変換プログラム を作成しようとしているのですが うまくいきません! どなたか教えて下さる方はいらっしゃいませんか?

    • ベストアンサー
    • Java
  • 10進数→2進数への変換

    VBの関数で  10進数→2進数への変換 のライブラリはあるのでしょうか?  それとも自分で作成するのでしょうか? もし作成する場合、何か参考になるHPを教えて下さい また作成された方が居られましたら、その関数を頂けないでしょうか  初歩的な質問で申し訳ございません、よろしくお願い申し上げます

  • 逆フーリエ変換について、、、

    g(ω)=(T/√2π)exp〔(-1/2)(T^2){(ωーω0)^2}〕 ω0は定数です。ωは各周波数です。 これを逆フーリエ変換したいのですがどうもきれいにできません。 どなたか詳しく解き方を説明してくださいませんか? おねがいします。

  • 10進数を2進数に変換したいのですが・・・

    こんばんは。 入力された10進数を2進数に変換するというプログラムを、一応作成することができたのですが、表示される結果が逆に表示されてしまいます。(例えば、4なら001) どのようにすれば、正しく表示することができるのでしょうか??ちなみにプログラムは #include<stdio.h> int main(void) { int num; printf("数字を入れてください。\n"); scanf("%d", &num); for(num = num ; num>1 ; num = num/2) printf("%d",num%2); printf("%d\n",num); return 0; } です。

  • ラプラス逆変換について

    ラプラス逆変換の式の定義が   1 ----∫F(s)e^st ds で与えられることは分かりました 2πi 実際にこれを計算するときには留数定理を使って もとの形f(t)になっていることもわかりました しかし何故この式がF(s)→f(t)に戻せる変換なのか分かりません 普段はラプラス変換表などから ラプラス逆変換を求めるためあまり使わないと思うのですが この式はどういう意味をもったものなのでしょうか

  • 8進数から2進数に変換の

    8進数223を2進数に変換したいのですが、 まず223を10進数に変換(2×8^2+2×8+3×1=147)→それから2進数に変換→答えは10010011 という方法しかないのでしょうか? 10進数に変換せず、直接2進数にする方法はあるのでしょうか?

  • 二進数の循環小数を十進数に変換する方法

    二進数の循環小数を十進数に変換する方法が分かりません。 サイトも探してみたのですが、十進の循環を二進数に変換するものは見つかっても、逆は見つからなくて・・・ 教えていただけませんでしょうか、よろしくお願いします。

専門家に質問してみよう