VB数据类型转换

DimlumAsByte(’DimlumAsstring)PrivateSubText1_Change()lum=Hex(Text1.Text)①lum=CByte(He... Dim lum As Byte (’Dim lum As string )
Private Sub Text1_Change()
lum = Hex(Text1.Text) ①
lum = CByte(Hex(Text1.Text)) ②
End Sub
目的:将文本框Text1中输入的内容转化为16进制给lum,最后再输出去
问题1:当lum定义为byte时,采用①、②式后,文本框中数据不是随便可以输入的,像1-9、16-25、29-41都可以(好像转换成16进制后的两位数中都是10以下的都可以),像10、26、42(对应0A、1A、2A)出现A或以上的都无法输入了,会出现: “实时错误‘13’:类型不匹配”
就是不明白类型怎么错了?
问题2:当我将Lum定义为string时,不管输入什么数字都行了,可是有个问题,比如Text1输入15,输出则为F,而不是我想要的OF,我要的结果是一个字节的。用②式,即使Lum定义为string,也还是出错
对这些一点不了解啊,现在不是在学校了,要不图书馆找本书肯定就能解决了,离开学校,想找新华书店都难啊,还是网上请高人指点啊
谢谢!!!!
展开
 我来答
悠悠周郎
2009-11-20
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
你先把 Text1.Text 转换为数字,用 CInt。然后用 Hex 函数转换。转换后得到字符串,在字符串 Lenth=1 时在其前方加入 0。
if lum.length = 1 then
lum = 0 & lum
end if

注意,CByte 不是干这个的!十六进制数和 Byte 毫无关系啊
萍水e相逢
2009-11-20
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
你的 lum 是 Byte ,但 Hex 返回 的 是 代表十六进制数值的 String。
所以, ① 肯定错
像10、26、42(对应0A、1A、2A),那么 如何 用 CByte 转换 呢?所以 ②
也会出错
其实,凡事 CByte后的 括号里出现了 数字以外的字符 a b 等,都会出错的

多实际,多查 msdn 吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式