小育 發問時間: 電腦與網際網路程式設計 · 2 0 年前

2進位轉10進位怎們寫?20點

卡住啦@@頭腦打劫

= =想不出來。。。

已更新項目:

我要的不是這樣..我要..vb寫出來的樣子...程式碼...

2 個已更新項目:

@_@我要用。先在text1輸入2進位的數子然後點command輸出到text2

8 個解答

評分
  • Brian
    Lv 5
    2 0 年前
    最佳解答

    Private Sub Command1_Click()

     Dim tmpNum As Long

     Dim i As Integer

     tmpNum = 0

     For i = Len(Text1.Text) To 1 Step -1

      tmpNum = tmpNum + Val(Mid(Text1.Text, i, 1)) * 2 ^ (Len(Text1.Text) - i)

     Next i

     Text2.Text = CStr(tmpNum)

    End Sub

    跟著程式, 用頭腦 run 一 run , 你應該就會明白了 : )

  • 匿名使用者
    2 0 年前

    基本上將2進位的用2^i來計算

  • 匿名使用者
    2 0 年前

    Private Sub Command1_Click()

    S = Text1.Text

    For i = 1 To Len(S) '由右邊逐步讀出01

    j = Mid(S, Len(S) - i + 1, 1)

    If j = 1 Then '是1,則計算

    U = U + M(i)

    End If

    Next i

    Text2.Text = U '顯示

    End Sub

    Function M(ByVal X)

    T = 1

    If X = 1 Then '2的0次方

    T = 1

    ElseIf X >= 2 Then '2的1次方以後

    For i = 2 To X '幾次方乘幾次

    T = T * 2

    Next i

    End If

    M = T

    End Function '寫了就要貼....

    參考資料: Me (by VB 6.0)
  • 2 0 年前

    我就是要程式碼= =a

  • 您覺得這個回答如何?您可以登入為回答投票。
  • Tony
    Lv 6
    2 0 年前

    怎樣看都是像在要程式碼的= ="

  • 2 0 年前

    100 INPUT A$110 L=LEN(A$)120   FOR J= 0 TO L-1130       B$=MID$(A$,L-J,1)140       IF B$<>"1" AND B$<>"0" THEN PRINT"Input out if range!":END150       A=VAL(B$)*(2^J)160       B=B+A170   NEXT180   PRINT B

    參考資料: Olison
  • 匿名使用者
    2 0 年前

    Dim input As String = InputBox("輸入")

    Dim sum As Integer = 0

    For i As Integer = 0 To input.Length - 1

    sum = sum * 2 + CInt(input.Substring(i, 1))

    Next

    MessageBox.Show(sum)

    邏輯思考是這樣,給你參考囉!

  • WTF
    Lv 6
    2 0 年前

    譬如說11010110

    那從右邊開始看

    最右邊的一個位數就是2^0位

    往左邊一個就是2^1位

    以此類推

    所以要轉換成10進位就是像下面這樣

    1*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 64+32+0+8+0+1+0 = 105

    2005-07-28 18:38:58 補充:

    說詳細一點吧

還有問題?馬上發問,尋求解答。