-
最后写出来,任意长度的十进制数完全按照要求转换为十六进制数:两个文本框和一个按钮,其中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) 取绝对值。