求...會的人幫幫忙吧...
要用遞迴做出Command的十進位轉二進位的程式碼....
因為我初學...所以希望可以寫的簡單一點....
可以的話...幫我附上每行指令的注解..感謝
2006-11-27 17:37:35 · 4 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
Private Sub Command1_Click()
a = Text1.Text '由此輸入10進位的數
b = "" '用這個來存放結果,所以每次開始時就要清空
Do While a <> 0
k = a Mod 2 '先暫存第次除2的餘數
b = k & b
a = (a - k) / 2
Loop
Print b '顯示結果
End Sub
'希望以上能對你有幫助~^^~
2006-11-28 03:55:07 · answer #1 · answered by 阿皓 2 · 0⤊ 0⤋
Private Sub Form_Load()
MsgBox TenToEct(InputBox("10進位值", "", 8))
End Sub
Public Function TenToEct(ByVal N&)
If N = 0 Then TenToEct = "": Exit Function
TenToEct = TenToEct(N \ 2) & N Mod 2
End Function
'--------------------------------------------------
之前寫的10進制轉其他進制,不過後來被棄題 XD
改良成2進制專用...
說明:
10進制轉2進制(包括其他進制)其實都是不斷地取商數及餘數...
這裡的處理是交給TenToEct...
我們把要處理的商數丟給TenToEct處理就是TenToEct(N \ 2)
TenToEct(N \ 2)會把處理後餘數丟回來....
而答案其實就是餘數的集合,就是& N Mod 2
所以TenToEct = TenToEct(N \ 2) & N Mod 2就是不斷的把商數丟進去,把餘數丟回來
直到N=0時,就是結束的時候囉...
2006-11-29 08:34:12 · answer #2 · answered by 幽靈 5 · 0⤊ 0⤋
Private Sub Command1_Click() Dim S As String, N As Long N = Abs(Int(Val(InputBox("輸入正整數", "", 255)))) Call TTo2(N, S) Print SEnd SubSub TTo2(N As Long, S As String) If N Then S = N Mod 2 & S TTo2 N \ 2, S Else If S = "" Then S = 0 End IfEnd Sub
2006-11-28 10:55:06 · answer #3 · answered by W.J.S. 7 · 0⤊ 0⤋
Private Sub Form_Activate()
n = InputBox("", "", "11")
A = n
Do While A > 0 '大於一就繼續做
ANS = A Mod 2 & ANS '將字串巔倒
A = A \ 2
Loop
Print Format(ANS, "00000000") '格式化印出
End Sub
' 儘供參考....
2006-11-28 11:03:36 補充:
Private Sub Form_Activate()n = Val(InputBox("", "", "11"))t = nDoans = t Mod 2 & anst = t \ 2Loop Until t <= 0Print ansEnd Sub
2006-11-28 05:51:01 · answer #4 · answered by ? 1 · 0⤊ 0⤋