1樓:聽不清啊
dim a(32) as integer, r as integerprivate sub ***mand1_click()n = clng(text1)
i = 1
s = ""
while n > 0
a(i) = n mod r
if a(i) < 10 then s = a(i) & s else s = chr(a(i) + 55) & s
n = n \ r
wend
text2 = s
end sub
private sub form_load()option1(0).caption = "二進位制"option1(1).caption = "八進位制"
option1(2).caption = "十六進位制"
frame1.caption = "選擇進位制"
end sub
private sub option1_click(index as integer)
if index = 0 then r = 2if index = 1 then r = 8if index = 2 then r = 16end sub
編寫function函式過程,能夠實現十進位制轉換為二進位制、八進位制、十六進位制。(用vb做)
2樓:
供參考……
#include "stdafx.h"
#include "iomanip.h"
void d10to2_8_16(int i,char radix)void main(void)
用vb編寫程式,把任意一個十進位制n轉換成分別用二進位制,八進位制和十六進位制的數(用sub實現數值轉換)
3樓:fm網路
' 用途:將十進位制轉化為二 進 制
' 輸入:dec(十進位制數)
' 輸入資料型別:long
' 輸出:dec_to_bin(二 進 制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647,輸出最大數為1111111111111111111111111111111(31個1)
public function dec_to_bin(byval dec as long) as string
dec_to_bin = ""
do while dec > 0
dec_to_bin = dec mod 2 & dec_to_bin
dec = dec \ 2
loop
end function
' 用途:將二 進 制轉化為十進位制
' 輸入:bin(二 進 制數)
' 輸入資料型別:string
' 輸出:bin_to_dec(十進位制數)
' 輸出資料型別:long
' 輸入的最大數為1111111111111111111111111111111(31個1),輸出最大數為2147483647
public function bin_to_dec(byval bin as string) as long
dim i as long
for i = 1 to len(bin)
bin_to_dec = bin_to_dec * 2 + val(mid(bin, i, 1))
next i
end function
' 用途:將十六進位制轉化為二 進 制
' 輸入:hex(十六進位制數)
' 輸入資料型別:string
' 輸出:hex_to_bin(二 進 制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647個字元
public function hex_to_bin(byval hex as string) as string
dim i as long
dim b as string
hex = ucase(hex)
for i = 1 to len(hex)
select case mid(hex, i, 1)
case "0": b = b & "0000"
case "1": b = b & "0001"
case "2": b = b & "0010"
case "3": b = b & "0011"
case "4": b = b & "0100"
case "5": b = b & "0101"
case "6": b = b & "0110"
case "7": b = b & "0111"
case "8": b = b & "1000"
case "9": b = b & "1001"
case "a": b = b & "1010"
case "b": b = b & "1011"
case "c": b = b & "1100"
case "d": b = b & "1101"
case "e": b = b & "1110"
case "f": b = b & "1111"
end select
next i
while left(b, 1) = "0"
b = right(b, len(b) - 1)
wend
hex_to_bin = b
end function
' 用途:將二 進 制轉化為十六進位制
' 輸入:bin(二 進 制數)
' 輸入資料型別:string
' 輸出:bin_to_hex(十六進位制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647個字元
public function bin_to_hex(byval bin as string) as string
dim i as long
dim h as string
if len(bin) mod 4 <> 0 then
bin = string(4 - len(bin) mod 4, "0") & bin
end if
for i = 1 to len(bin) step 4
select case mid(bin, i, 4)
case "0000": h = h & "0"
case "0001": h = h & "1"
case "0010": h = h & "2"
case "0011": h = h & "3"
case "0100": h = h & "4"
case "0101": h = h & "5"
case "0110": h = h & "6"
case "0111": h = h & "7"
case "1000": h = h & "8"
case "1001": h = h & "9"
case "1010": h = h & "a"
case "1011": h = h & "b"
case "1100": h = h & "c"
case "1101": h = h & "d"
case "1110": h = h & "e"
case "1111": h = h & "f"
end select
next i
while left(h, 1) = "0"
h = right(h, len(h) - 1)
wend
bin_to_hex = h
end function
' 用途:將十六進位制轉化為十進位制
' 輸入:hex(十六進位制數)
' 輸入資料型別:string
' 輸出:hex_to_dec(十進位制數)
' 輸出資料型別:long
' 輸入的最大數為7fffffff,輸出的最大數為2147483647
public function hex_to_dec(byval hex as string) as long
dim i as long
dim b as long
hex = ucase(hex)
for i = 1 to len(hex)
select case mid(hex, len(hex) - i + 1, 1)
case "0": b = b + 16 ^ (i - 1) * 0
case "1": b = b + 16 ^ (i - 1) * 1
case "2": b = b + 16 ^ (i - 1) * 2
case "3": b = b + 16 ^ (i - 1) * 3
case "4": b = b + 16 ^ (i - 1) * 4
case "5": b = b + 16 ^ (i - 1) * 5
case "6": b = b + 16 ^ (i - 1) * 6
case "7": b = b + 16 ^ (i - 1) * 7
case "8": b = b + 16 ^ (i - 1) * 8
case "9": b = b + 16 ^ (i - 1) * 9
case "a": b = b + 16 ^ (i - 1) * 10
case "b": b = b + 16 ^ (i - 1) * 11
case "c": b = b + 16 ^ (i - 1) * 12
case "d": b = b + 16 ^ (i - 1) * 13
case "e": b = b + 16 ^ (i - 1) * 14
case "f": b = b + 16 ^ (i - 1) * 15
end select
next i
hex_to_dec = b
end function
' 用途:將十進位制轉化為十六進位制
' 輸入:dec(十進位制數)
' 輸入資料型別:long
' 輸出:dec_to_hex(十六進位制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647,輸出最大數為7fffffff
public function dec_to_hex(dec as long) as string
dim a as string
dec_to_hex = ""
do while dec > 0
a = cstr(dec mod 16)
select case a
case "10": a = "a"
case "11": a = "b"
case "12": a = "c"
case "13": a = "d"
case "14": a = "e"
case "15": a = "f"
end select
dec_to_hex = a & dec_to_hex
dec = dec \ 16
loop
end function
' 用途:將十進位制轉化為八進位制
' 輸入:dec(十進位制數)
' 輸入資料型別:long
' 輸出:dec_to_oct(八進位制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647,輸出最大數為17777777777
public function dec_to_oct(byval dec as long) as string
dec_to_oct = ""
do while dec > 0
dec_to_oct = dec mod 8 & dec_to_oct
dec = dec \ 8
loop
end function
' 用途:將八進位制轉化為十進位制
' 輸入:oct(八進位制數)
' 輸入資料型別:string
' 輸出:oct_to_dec(十進位制數)
' 輸出資料型別:long
' 輸入的最大數為17777777777,輸出的最大數為2147483647
public function oct_to_dec(byval oct as string) as long
dim i as long
dim b as long
for i = 1 to len(oct)
select case mid(oct, len(oct) - i + 1, 1)
case "0": b = b + 8 ^ (i - 1) * 0
case "1": b = b + 8 ^ (i - 1) * 1
case "2": b = b + 8 ^ (i - 1) * 2
case "3": b = b + 8 ^ (i - 1) * 3
case "4": b = b + 8 ^ (i - 1) * 4
case "5": b = b + 8 ^ (i - 1) * 5
case "6": b = b + 8 ^ (i - 1) * 6
case "7": b = b + 8 ^ (i - 1) * 7
end select
next i
oct_to_dec = b
end function
' 用途:將二 進 制轉化為八進位制
' 輸入:bin(二 進 制數)
' 輸入資料型別:string
' 輸出:bin_to_oct(八進位制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647個字元
public function bin_to_oct(byval bin as string) as string
dim i as long
dim h as string
if len(bin) mod 3 <> 0 then
bin = string(3 - len(bin) mod 3, "0") & bin
end if
for i = 1 to len(bin) step 3
select case mid(bin, i, 3)
case "000": h = h & "0"
case "001": h = h & "1"
case "010": h = h & "2"
case "011": h = h & "3"
case "100": h = h & "4"
case "101": h = h & "5"
case "110": h = h & "6"
case "111": h = h & "7"
end select
next i
while left(h, 1) = "0"
h = right(h, len(h) - 1)
wend
bin_to_oct = h
end function
' 用途:將八進位制轉化為二 進 制
' 輸入:oct(八進位制數)
' 輸入資料型別:string
' 輸出:oct_to_bin(二 進 制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647個字元
public function oct_to_bin(byval oct as string) as string
dim i as long
dim b as string
for i = 1 to len(oct)
select case mid(oct, i, 1)
case "0": b = b & "000"
case "1": b = b & "001"
case "2": b = b & "010"
case "3": b = b & "011"
case "4": b = b & "100"
case "5": b = b & "101"
case "6": b = b & "110"
case "7": b = b & "111"
end select
next i
while left(b, 1) = "0"
b = right(b, len(b) - 1)
wend
oct_to_bin = b
end function
' 用途:將八進位制轉化為十六進位制
' 輸入:oct(八進位制數)
' 輸入資料型別:string
' 輸出:oct_to_hex(十六進位制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647個字元
public function oct_to_hex(byval oct as string) as string
dim bin as string
bin = oct_to_bin(oct)
oct_to_hex = bin_to_hex(bin)
end function
' 用途:將十六進位制轉化為八進位制
' 輸入:hex(十六進位制數)
' 輸入資料型別:string
' 輸出:hex_to_oct(八進位制數)
' 輸出資料型別:string
' 輸入的最大數為2147483647個字元
public function hex_to_oct(byval hex as string) as string
dim bin as string
hex = ucase(hex)
bin = hex_to_bin(hex)
hex_to_oct = bin_to_oct(bin)
end function
VB中編寫求階層的函式呼叫函式求s
private sub mand1 click dim n as integer,i as integern cint inputbox n for i 1 to n s s 1 fact i next i msgbox s 1 1 2 1 3 1 4 1 n s end sub function ...
VB高手用VB編寫下面勾股定理,vb編寫勾股定理滿足條件一
private sub command1 click for i 1 to 30 for j i 1 to 30 k int sqr j j i i 0.5 if i i k k j j and k i then print i k j end if next j,i end sub vb編寫勾股定...
用vb編寫函式fun函式的功能是求四位數的各
可以在excel表中的a1 中填寫 1234 在b1 中填寫 power mid a1,1,1 3 power mid a1,2,1 3 power mid a1,3,1 3 power mid a1,4,1 3 這樣就可以得到你想要的值,呵呵 注意以上的 中填寫的雙引號不要加進去哦。functio...