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