2 buctwh2010 buctwh2010 于 2016.02.25 17:00 提问

只能读取传感器16进制的输出而无法读取ASCII; 16进制转ASCII码

使用串口调试助手读取传感器的数据时,发现遇到如下情况:
1 在接收设置里选择 Hex,则读出的数据为16进制数
2 若在接收设置里ASCII, 则读出的数据为乱码
3 使用16进制转ASCII工具,将从传感器读取的16进制数据转出的结果仍旧为乱码

谁能解释一下原因?
谢谢!

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.25 17:15
已采纳

这不是很正常么?不是所有的16进制数都可以用ascii表示,反之所有的ascii都可以用16进制表示。ascii中可打印的字符只是全部可能的16进制组合的很少一部分(一个字符有256种可能,16个字母大小写+10个数字+几个符号只有70多个组合,剩下100多都是乱码)

caozhy
caozhy   Ds   Rxr 2016.02.25 17:16

16个字母大小写->26个字母大小写

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
串口数据读取,ascii和16进制2种方式
用vc控件,读取串口数据,ascii和16进制2种方式
java中十六进制和ASCII码互相转换。
package com.test; public class StringToHex{ public String convertStringToHex(String str){ char[] chars = str.toCharArray(); StringBuffer hex = new StringBuffer(); for(int i = 0; i < ch
16进制码转换ASCII码
//----------------------------------------------------------------------//16进制码转换ASCII码//----------------------------------------------------------------------int MN2_KNL_HexToAscii( P_U8 pAscTxt, P_U
Python刷题笔记(3)- 16进制和ascii码互转
今天看了下等级标示,原来kyu上面还有dan的等级,升级路漫漫,今天是5kyu题目 题目: Write a module Converter that can take ASCII text and convert it tohexadecimal. The class should also be able to take hexadecimal andconvert it to A
字符串十六进制转ASCII码
/// /// 将一条十六进制字符串转换为ASCII /// /// 一条十六进制字符串 /// 返回一条ASCII码 public static string HexStringToASCII(string hexstring) { string result = Rege
Qt十六进制转十进制转ASCII码,附ASCII码表
分享一个Qt十六进制转十进制转ascii码,最近用的比较多,所以将它写成了内联函数 看代码: //返回16进制数的ascii码值 inline int ServeWidget::changefromHex_to_ascii(QString str) { QString str_hex = str; //获取十六进制数 int dec = str...
用C++实现ASCII码字符数组转16进制字符数组的功能
在网络通信中经常用到16进制和ASCII码字符数组互相转换的功能,虽然功能简单,但初学者写出来的代码经常会有各种问题。从ASCII码字符数组转为16进制字符数组,一个判断比较完整的实现代码如下: bool AsciiToHex( char * Dest, char * Src, int SrcLen ) {     if ( ( Dest == NULL ) || ( Src == NULL
ascii码转为对应的十六进制数函数
下面的函数用于实现ascii码字符转换成对应的十六进制数。/*-----------------------------------------------------------------------------------------------输入参数1 @buf ascii码字符串输入参数2 @len 字符串buf的长度返回对应的hex进制的值例如: 输入"23abc
读写二进制时,怎么将ASCII码大于等于128的char字符转换为16进制输出
首先,要将char转换成对应的整型大小。比如ASCII码164对应的字符串,二进制形式:1010 0100. 直接使用强制转换成int再输出16进制的话,会得到ffffffa4,这是因为字符串的最高位1的问题。 使用下面的这个函数,就可以得到与ASCII码相同值的int
十六进制与ASCII码的互转(C语言)
十六进制与ASCII码的互转(C语言) //函 数 名:CharToHex()  //功能描述:把ASCII字符转换为16进制  //函数说明:  //调用函数:  //全局变量:  //输 入:ASCII字符  //返 回:16进制 /**function: CharToHex() *** ACSII change to 16 hex *** input:AC