社区
VB
帖子详情
转换16进制的问题。
wohaorende
2010-11-26 09:01:05
我有数据存放在StringBuilder中
1,如何判断是16进制还是字符型呢?
2,判断以后如何转换呢?字符型的好办 .ToString(),十六进制如何转换
朋友推荐个方法:进行强转换一次 如果失败就是字符串
比如 ctype( obj, int16)
try一下
但是我没搞定。这样写 CType(serialdata.ToString(), Int16)
报错表达式:表达式不是方法
...全文
109
13
打赏
收藏
转换16进制的问题。
我有数据存放在StringBuilder中 1,如何判断是16进制还是字符型呢? 2,判断以后如何转换呢?字符型的好办 .ToString(),十六进制如何转换 朋友推荐个方法:进行强转换一次 如果失败就是字符串 比如 ctype( obj, int16) try一下 但是我没搞定。这样写 CType(serialdata.ToString(), Int16) 报错表达式:表达式不是方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wohaorende
2010-11-27
打赏
举报
回复
现在的问题是如何判断Byte中的是字符串还是16进制数据。
chinaboyzyq
2010-11-27
打赏
举报
回复
16进制也是字符串,所以无法判断。
协议有问题……
QQRN
2010-11-27
打赏
举报
回复
唉,别在这个问题上纠结了,因为你这样的做法本身就是个错误。
在传送数据时候应该自定义个通讯协议,标识传送的内容。
比如 下面就是个简单的数据头:
0-1 标识:如果传送的是 字符就=1,数值=2
2-5 内容长度(字符串长度)
6- 内容(放置字符串或数值)
收到数据后,根据数据头进行分析就能得到你要的数据
wohaorende
2010-11-26
打赏
举报
回复
[Quote=引用 8 楼 wuyazhe 的回复:]
协议有描述数据头把。比如文本的协议头为ABC,二进制的为&H01,&H02
你判断连续2个字节,找到以上任何一种都认为是找到某种数据开始,否则就丢弃,找到后根据对应协议判定长度,判定是否完整。
[/Quote]
你的思路是根据协议来判断。就是把BYTE中的数据转换成16进制,然后根据协议格式判断,是否正确,否则就按照字符输出对不对?
我的意思是如何在不转换成16进制的情况下判断出来是16进制数据,因为我的返回数据只可能是16进制,或者是字符型。二者不混淆。我想找个方法先判断然后转换。然后再看是否符合规约。
兔子-顾问
2010-11-26
打赏
举报
回复
协议有描述数据头把。比如文本的协议头为ABC,二进制的为&H01,&H02
你判断连续2个字节,找到以上任何一种都认为是找到某种数据开始,否则就丢弃,找到后根据对应协议判定长度,判定是否完整。
wohaorende
2010-11-26
打赏
举报
回复
[Quote=引用 6 楼 wuyazhe 的回复:]
你自己不知道通讯协议么?
[/Quote]
我知道通讯协议,下挂了两个设备,一个返回字符串一个返回16进制。问题是我想知道Byte数组中什么时候返回什么数据。可能吗/
兔子-顾问
2010-11-26
打赏
举报
回复
你自己不知道通讯协议么?
wohaorende
2010-11-26
打赏
举报
回复
[Quote=引用 3 楼 caozhy 的回复:]
引用 2 楼 wohaorende 的回复:
引用 1 楼 caozhy 的回复:
StringBuilder 里面的难道除了字符串还有别的???
我想发字符串转换成16进制数据
那你需要确定字符串的编码。
同样的文本,用UTF-8 GB Unicode或者Big5编码的十六进制数据是完全不同的。
使用 System.Text.Encoding.GetBytes() ……
[/Quote]
现在的问题改变了。我用 Dim serialdata(1024) As Byte这个参数接收到了数据。
我也可以转换成16进制,就是不知道怎么判断接收到的是16进制数据还是英文字符数据。
wohaorende
2010-11-26
打赏
举报
回复
[Quote=引用 3 楼 caozhy 的回复:]
引用 2 楼 wohaorende 的回复:
引用 1 楼 caozhy 的回复:
StringBuilder 里面的难道除了字符串还有别的???
我想发字符串转换成16进制数据
那你需要确定字符串的编码。
同样的文本,用UTF-8 GB Unicode或者Big5编码的十六进制数据是完全不同的。
使用 System.Text.Encoding.GetBytes() ……
[/Quote]
我觉得你说的有点对。我现在StringBuilder 里面存放的是16进制数据。用serialdata.ToString()显示以后是一堆乱码。我要转换成16进制。请教具体如何转换?
threenewbee
2010-11-26
打赏
举报
回复
[Quote=引用 2 楼 wohaorende 的回复:]
引用 1 楼 caozhy 的回复:
StringBuilder 里面的难道除了字符串还有别的???
我想发字符串转换成16进制数据
[/Quote]
那你需要确定字符串的编码。
同样的文本,用UTF-8 GB Unicode或者Big5编码的十六进制数据是完全不同的。
使用 System.Text.Encoding.GetBytes() 方法转换成字节数组。
wohaorende
2010-11-26
打赏
举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
StringBuilder 里面的难道除了字符串还有别的???
[/Quote]
我想发字符串转换成16进制数据
threenewbee
2010-11-26
打赏
举报
回复
StringBuilder 里面的难道除了字符串还有别的???
16进制
转换
2进制
16进制
即逢16进1,每一位上可以是从小到大为0、1、2...
16进制
转换
即
16进制
与其他不同进制之间的换算
转换
,常见如2进制 8 4 2 1=15=F=1111 eg:将2AF5转2进制 2=0010 A=10=1010 F=15=1111 5=0101 所以2AF...
C# 数字转
16进制
和字符串
转换
16进制
数字
转换
16进制
,字符串
转换
16进制
。
10进制
转换
为
16进制
十进制小数
转换
为
16进制
小数可采用乘16取整法,即: 十进制小数转R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果的整数部分即可。需要注意的是并非所有的十进制小数都能完全转化为R进制小数,这时就需要...
c# .net
16进制
转换
10进制
c# .net
16进制
转换
10进制
c#
16进制
转10进制
所以项目中就有对10进制和
16进制
转换
的要求。 推荐工具:在线进制
转换
《http://tool.oschina.net/hexconvert/》 一、
16进制
转10进制 var id = Convert.ToInt32("28de1212", 16); //id6...
VB
16,554
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章