vb編寫程式,利用Sub過程實現將任意十進位制數n分別轉換成2進製 8進製和16進製制數。要求

2021-04-08 23:56:46 字數 9348 閱讀 1619

1樓:聽不清啊

private sub command1_click()a = cint(text1.text)

s = ""

dec2n a, 2, s

print a; "=("; s; ")2"

dec2n a, 8, s

print a; "=("; s; ")8"

dec2n a, 16, s

print a; "=("; s; ")16"

end sub

sub dec2n(byval a, r, s)s = ""

while a > 0

x = a mod r

if x < 10 then s = x & s else s = chr(55 + x) & s

a = a \ r

wend

end sub

2樓:匿名使用者

這個大部分都做好了

你需要的話 可以幫你做

編寫vb程式 編寫sub過程 把任意乙個十進位制數n分別轉換成二進位制八進位制十六進製制表示的數

3樓:匿名使用者

private function dectopoint(value as long, flag as long) as string

dim c as long

dim r as long

c = value if flag = 16 then

dectopoint = hex(c)

exit function

end if

dim s as string

dor = c mod flag

c = int(c / flag)

s = s & cstr(r)

loop until c < flag

s = s & cstr(c)

dectopoint = strreverse(s)

end functionprivate sub form_load()

dim value as long

value = 123

msgbox "value的二進位制

: " & dectopoint(value, 2)

msgbox "value的八進位制: " & dectopoint(value, 8)

msgbox "value的十六進製制: " & dectopoint(value, 16)

end sub

用vb編寫程式,把任意乙個十進位制n轉換成分別用二進位制,八進位制和十六進製制的數(用sub實現數值轉換)

4樓: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編寫程式利用隨機函式rnd生成

n 10 int 90 rnd st st n forj 2 to n n1 n1 1 exit for text1.text st text2.text n n1 private sub mand1 click dim i as integer,j as integer,n as integer,...

通過VB編寫程式,單擊開始,實現小球從高處落下,碰到地面後彈起到原來高度的一半,再次落下

dim h as integer,h0 as integer,d as integer,n as integer private sub command1 click timer1.enabled true command1.enabled false end sub private sub for...

用matlab編寫程式實現如下條件

你可以用2個for迴圈,第乙個是從i n第二個是1 i.當你的起點i 1的時候第二個迴圈相當於沒有執行。就可以了。如有疑問再追加吧 如何用matlab編寫如下程式 matlab 程式的檔案 是以.m檔案的形式呈現的。將matlab 編寫進.m檔案內然後執行即可。例子 建立乙個 helloworld....