社区
VB
帖子详情
转换16进制的问题。
wohaorende
2010-11-26 09:01:05
我有数据存放在StringBuilder中
1,如何判断是16进制还是字符型呢?
2,判断以后如何转换呢?字符型的好办 .ToString(),十六进制如何转换
朋友推荐个方法:进行强转换一次 如果失败就是字符串
比如 ctype( obj, int16)
try一下
但是我没搞定。这样写 CType(serialdata.ToString(), Int16)
报错表达式:表达式不是方法
...全文
163
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进制
数据
转换
问题
问题
1:原程序的目的是将字符串形式的mac地址存放在char型数组当中(如有更好的获取方法留言说下,谢谢),代码如下,在mac执行如下代码后,变量int型值发生了变化。 #include typedef unsigned int uint32; int main(void) { int num = 1; char str_mac[] = "7f:ab:ee:af:5
时钟芯片
16进制
时间
转换
问题
时钟芯片
16进制
时间
转换
问题
很多时钟芯片的时间显示是
16进制
的,比如0x15就表示15点。如果用系统自带的printf的话就会增大系统内存,甚至是不能使用,比如本人在扬尘监测系统中就碰到这个
问题
,在向服务器发送的数据中需要时间,但是主板当时没有做上,想想也是多此一举,你数据接收到的时候,把这个时间记录下来,不就行了么?非要我们发送,但是没办法,协议就是这么要求,于是我只能外接一个时钟模块了,原来...
用C语言将n
转换
为
16进制
,28进制及其他进制
转换
问题
7*6=42,然后分别将选项中9,10,12,18带入,即42%9=6;42%18=6.这样就可以排除10,即选项 C,但还是无法确定最终的正确答案,想要确定最终答案就要进一步运算。解:这道题首先考虑用一个简单的方法看看能不能判断出来,将两个数的各位相乘,然后将选项带进去进行取余,看看结果是不是等号右边数字的个位数,对于这道题来说即为。1.从键盘获取一个正整数,如果把它转为
16进制
的数字,那么它是一个几位数呢?2.假设在n进制下,下面的等式成立,567*456=150216,n的值是( D )
16进制
到十进制
转换
问题
进制
转换
问题
: /** *
16进制
转ASCII * * @param hex * @return */ public static String hex2Str(String hex) { StringBuilder sb = new StringBuilder(); StringBuilder temp = new StringBuilder()...
蓝桥杯 16-8进制
转换
问题
蓝桥杯
VB
16,718
社区成员
110,520
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章