估念培桐计是你的代码里重新定义了函数hex,而VB会优先调用自定义函数hex,这样的话VB本身的内部函数Hex就会失效了。解决办法有两种:
站在用户的角度思考问题,与客户深入沟通,找到南关网站设计与南关网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、虚拟空间、企业邮箱。业务覆盖南关地区。
1、在你的整个工程的所有代码(包括窗体和模块)中查找hex,找到自定义的hex函数,把它删除或改名(仔坦建议后者,中亮除非你这个函数是没什么作用的),这样VB内部函数Hex就可以使用了;
2、指定Hex的父对象(VBA),也可以让VB强行调用其内部函数而不是自定义函数,比如:
b = Hex(a)
改为
b = VBA.Hex(a)
VB.Net自带函数:
十进制慎携转八进制:Oct(num)
十宽樱伏六进制转八进制:oct("H" num)
十进颂州制转十六进制:hex(num)
八进制转十六进制:hex("O" num)
十六进制转换为十进制:CLng("H" num)
汉字“人”的asc码是一个大于32767的值,所以用integer返回就是一个负数:-14133
C8CB是一个十六进制的补码,补码的意思就是高字节如果为1,那么就是负数。
根据integer的范围:-14133,其实对应的是 -14133 + 65536 = 51403 = C8CB,正好就是那个hex返回的数值,所以,这两个值是一样的。
如果不理解,看看补码的概念吧,是二进制上的一个概念。
Asc 函数
返回一个 Integer,代表字符串中首字母的字符代码。
语法
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明
在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。
注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。
-----------------------------------------------
Hex 函数
返回代表十六进制数值的御樱 String。
语法
Hex(number)
必要的 number 参数为任何有效的数值表达式或字符串表达式。
说明
如果 number 还不是一个整数,那么在执行前会先被绝简四舍五入成最接近的整数。
如果 number 为 所得为
Null Null
Empty 零 (0)
任何其他的数字镇宏丛 最多可到八个十六进制字符。
适当范围内的数字,前缀以 H,可以直接表示十六进制数字。例如,十六进制表示法的 H10 代表十进制的 16。
含此 Private Sub Form1_Load(ByVal sender As System.Object, 团胡ByVal e As System.EventArgs) Handles MyBase.Load
MsgBox(DEC_to_HEX(255))
End Sub
Public Function DEC_to_HEX(ByVal 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