-
最後寫出來,任意長度的十進位數完全按照要求轉換為十六進製數:兩個文字框和乙個按鈕,其中text1輸入十進位數,點選按鈕,對應的十六進製數顯示在text2中。
private sub command1_click()
dim r as string, s as string
r =s = ten16(r)
send sub
private function ten16(byval x as string) as string '十進位數轉換為十六進製數,輸入和輸出是字串。
dim a() as string, m as integer, n as integer, r as string, i as integer, l as integer
do while x <>""
l = len(x)
redim a((l - 1) \3)
r = x: i = 0
do while len(r) >3
a(i) = left(r, 3): r = right(r, len(r) -3)
i = i + 1
loopa(i) = r
r = ""
for i = 0 to ubound(a)
m = val(a(i)) 16: n = val(a(i)) mod 16
if len(trim(str(m)))= 2 and i < ubound(a) then
r = r + "0" + trim(str(m))
elser = r + trim(str(m))
end if
if n = 0 then r = r + "0"
if i = ubound(a) then
ten16 = hex(n) +ten16
exit for
end if
a(i + 1) = trim(str(n)) a(i + 1)
next i
r = replace(r, " ", "")
do while left(r, 1) = "0"
r = right(r, len(r) -1)
loopx = r
loopten16 = replace(ten16, " ", "")
end function
-
看看這個估計,你就會明白了! ~
寫得很詳細! ~
-
其結果是:cef5e80e38
這涉及到大數的精確計算問題,這只能通過單獨程式設計來實現。
因為**很長,我就不在這裡貼了。
-
樓上的主人,你的答案有點問題,你試著輸入16,或者32看看。
-
10 到 16。
如果可以使用 hex() 函式,則 16 到 10 沒有現成的函式,可以使用以下 ** 來實現:
用法:將十六進製轉換為十進位。
輸入:十六進製(十六進製數。
輸入資料型別。
string
輸出:十六進製到十進位(十進位數)。
輸出資料型別: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
-
如何將十進位轉換為十進位十六進製的步驟是:1.首先,根據圖中的這種格式,將要轉換的數字和除以 16 得到的商和餘數填入相應的位置。
2.然後,讓我們按照步驟 2 中的步驟,一步一步地編寫。 直到最後乙個數小於16,如圖所示,最後乙個是1,最後將1除以16得到商為0,餘數為1,當商為0時,表示餘數轉換結束。
3.在十六進製中,十進位中的 o 9 仍然是十六進製中的 o 9;而十進位中的 10 15 表示為十六進製中的 f。 通過上述過程,我們依次得到四個殘差,分別是十六進製的 c、0、e、1。
如圖所示,在對應餘數旁邊依次寫上c、0、e、1,自下而上依次為1、e、0、c。 這意味著十進位中的 7692 等於十六進製中的 1eoc,7692 = 1eoch,在 1eoc 後新增 h 意味著它是乙個十六進製數。
-
從小數到十六進製,手法計算時可以使用除以十六的反餘數法。
例如,十進位 1234 到十六進製:
1234 16 = 77 餘數 2
77 16 = 4 和 13 在十六進製中是 d4 16 = 0 和 4
以相反的順序,它是十六進製的 4d2。
-
十六進製轉換有 16 個大小不一的數字,從小到大,A、B、C、D、E 和 F,即每 16 個數字變成 1,其中 a、b、c、d、e 和 f 六個字母(字母不區分大小寫)分別用於表示 10、11、12、13、14 和 15。
例如:(1)1=1;
3) 30 = 30 16 = 1 剩下的 14, 14 對應於 e。 所以 30 = 1e
4) 500 = 500 16 = 31 和剩下的 4,所以個位數是 4
第二步是將 31 轉換為十六進製,31=31 16=1,剩下的 15,找出 15 對應的數字是 f
所以 500=1f4
5) 321 = 321 16 = 20 和剩下的 1,即位數為 1
20 轉換為十六進製,20 = 20 16 = 1,剩下的 4
所以 321 = 141
6) 1024 = 1024 16 = 64 剩餘 0
然後將 64 轉換為十六進製,64 = 64,16 = 4 和 0 剩餘
所以 1024=400
7) 2000 = 2000 16 = 125 剩餘 0
然後將 125 轉換為十六進製,125 = 125 16 = 7 和剩餘的 13,發現 13 對應的數字是 d
所以 2000=7d0
對於十進位到十六進製,當數字大於 16 時,它總是除以 16 並從低到高寫。
-
如果將十進位轉換為十六進製,則可以使用 hex() 函式,並且沒有現成的十進位十六進製到十六進製函式,可以使用以下 ** 實現:
用法:將十六進製轉換為十進位。
輸入:十六進製(十六進製數。
輸入資料型別:字串
輸出:十六進製到十進位(十進位數)。
輸出資料型別: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
-
10 到 16 使用 hex() 函式,16 到 10 沒有現成的函式,你必須自己編寫。
用法:將十六進製轉換為十進位。
輸入:十六進製(十六進製數。
輸入資料型別:字串
輸出:十六進製到十進位(十進位數)。
輸出資料型別: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
我的是最簡單的答案。
private sub command1_click()= "十進位數為:" & val("&o" &end sub >>>More
在二進位中,1 代表負號,你的數字轉換成二進位是 10000000000000000101010101010101,所以它是乙個負數,你想把它轉換成正數,直接用 a = abs(&h80005555) 取絕對值。