社区
VB
帖子详情
转换16进制的问题。
wohaorende
2010-11-26 09:01:05
我有数据存放在StringBuilder中
1,如何判断是16进制还是字符型呢?
2,判断以后如何转换呢?字符型的好办 .ToString(),十六进制如何转换
朋友推荐个方法:进行强转换一次 如果失败就是字符串
比如 ctype( obj, int16)
try一下
但是我没搞定。这样写 CType(serialdata.ToString(), Int16)
报错表达式:表达式不是方法
...全文
138
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 里面的难道除了字符串还有别的???
printf、sscanf进行
16进制
数据
转换
问题
博客探讨了在使用printf和sscanf进行
16进制
数据
转换
时遇到的
问题
,特别是针对mac地址的字符串到char数组的
转换
中出现的值变化现象。
时钟芯片
16进制
时间
转换
问题
本文解决时钟芯片
16进制
时间显示
问题
,提供了一种不依赖printf的小程序实现方式,适用于内存受限的系统,如扬尘监测系统。通过自定义函数将
16进制
时间
转换
为十进制,避免了内存占用过大的
问题
。
用C语言将n
转换
为
16进制
,28进制及其他进制
转换
问题
本文讨论了一个
问题
,如何通过
转换
一个正整数到
16进制
和28进制来确定其位数,以及如何利用n进制下的等式来解决类似
问题
。作者提出了一种初步判断方法,但需进一步运算以确定n的具体值。
16进制
到十进制
转换
问题
本文介绍了一种将
16进制
字符串
转换
为ASCII字符的方法。通过使用Java编程语言,该方法首先将输入的
16进制
字符串分割成两个字符一组的形式,然后将每组
16进制
字符
转换
为其对应的十进制数,并最终将这些十进制数值
转换
为ASCII字符。
蓝桥杯 16-8进制
转换
问题
本文详细记录了解决一道蓝桥杯练习题的过程:将十六进制数
转换
为八进制数。作者最初尝试通过
16进制
到2进制再到8进制的
转换
思路,但遇到
问题
。经过调试,最终给出正确的实现方案,并分享了两种不同的AC代码。
VB
16,717
社区成员
110,522
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章