VB 十進位到十六進製問題

發布 科技 2024-06-25
10個回答
  1. 匿名使用者2024-01-29

    最後寫出來,任意長度的十進位數完全按照要求轉換為十六進製數:兩個文字框和乙個按鈕,其中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

  2. 匿名使用者2024-01-28

    看看這個估計,你就會明白了! ~

    寫得很詳細! ~

  3. 匿名使用者2024-01-27

    其結果是:cef5e80e38

    這涉及到大數的精確計算問題,這只能通過單獨程式設計來實現。

    因為**很長,我就不在這裡貼了。

  4. 匿名使用者2024-01-26

    樓上的主人,你的答案有點問題,你試著輸入16,或者32看看。

  5. 匿名使用者2024-01-25

    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

  6. 匿名使用者2024-01-24

    如何將十進位轉換為十進位十六進製的步驟是: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 意味著它是乙個十六進製數。

  7. 匿名使用者2024-01-23

    從小數到十六進製,手法計算時可以使用除以十六的反餘數法。

    例如,十進位 1234 到十六進製:

    1234 16 = 77 餘數 2

    77 16 = 4 和 13 在十六進製中是 d4 16 = 0 和 4

    以相反的順序,它是十六進製的 4d2。

  8. 匿名使用者2024-01-22

    十六進製轉換有 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 並從低到高寫。

  9. 匿名使用者2024-01-21

    如果將十進位轉換為十六進製,則可以使用 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. 匿名使用者2024-01-20

    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

相關回答
7個回答2024-06-25

255(十進位)

11111111(二進位)。 >>>More

10個回答2024-06-25

我的是最簡單的答案。

private sub command1_click()= "十進位數為:" & val("&o" &end sub >>>More

14個回答2024-06-25

首先,將八進位 462 轉換為十進位:4*16*16+6*16+2=306 >>>More

15個回答2024-06-25

在二進位中,1 代表負號,你的數字轉換成二進位是 10000000000000000101010101010101,所以它是乙個負數,你想把它轉換成正數,直接用 a = abs(&h80005555) 取絕對值。

8個回答2024-06-25

所有數字在記憶體中都是二進位的,只有在輸入和輸出時選擇十進位或十六進製才有意義。 >>>More