VB Byte 类型问题!

dimaasbyte如果写为:a=&H1F,则正常不会出错.如果写为:a=hex(31),则系统报错.(凡是转换为16进制后存在A-F时,都会报错,没有A-F时都正常).... dim a as byte
如果写为:a=&H1F,则正常不会出错.
如果写为:a=hex(31),则系统报错.(凡是转换为16进制后存在A-F时,都会报错,没有A-F时都正常).
这是什么原因?要如何处理?
展开
 我来答
瑞安阿芳
推荐于2018-03-13 · TA获得超过1946个赞
知道小有建树答主
回答量:749
采纳率:100%
帮助的人:893万
展开全部
a=hex(31),你要注意,hex函数返回的是字符串,如果是hex(31)返回的就是"1F"这个字符串,如果把它赋值给a,当然会出错,因为"1F"在无法换成数字,会出现类型不匹配。即使a是整型或双精度都不行。而如果a=hex(22),那么hex返回"16",则"16"可以转换成整数,那么a=16(10进制),这个结果又22不符。
所以a=hex(31)这种写法无论什么都是错的。
你可以直接写成a=31就可以了。
hejian511
2012-04-16 · TA获得超过845个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1468万
展开全部
byte 的取值范围是0~255 也就是说只能给byte型的数据附值0~255的整型数据
追问
但是为什么=&H1F这种类型不会出错呢?
追答
在赋值以前会自动把&H1F变成31  
而a=hex(31)会自动变为 a=1f
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
红山人2008
2012-04-16 · TA获得超过4679个赞
知道大有可为答主
回答量:5699
采纳率:0%
帮助的人:3913万
展开全部
楼上说的正确.意思是:变量A只认0-255之间的数字.你强制转换后的不是0-255之间的数.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujj4241
2012-04-16 · TA获得超过4043个赞
知道大有可为答主
回答量:7021
采纳率:58%
帮助的人:770万
展开全部
hex返回是字符串,不是字符hex(31)="1F",不是chr(31),可以写成chr(31)就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1781894094
2012-04-16
知道答主
回答量:21
采纳率:0%
帮助的人:8.7万
展开全部
代码出问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式