51单片机串口接收到一串16进制的数据,怎样能取出中间的一个字节然后做处理呢?

51单片机串口接收到一串16进制的数据,怎样能取出中间的一个字节然后做处理呢?,第1张

这里和几进制的数据没关系,不管是16进制,还是10进制,还是二进制,它所存储的数值,都是不变的。要处理接到数据,必须做协议,否则,你不知道这一串数据,哪个是第一个字节,哪个又是中间字节。

可以使用RandomAccessFile类。例如要从100字节开始输出工作目录下的datatxt文件的类容。
package konwtest1;
import javaioFileNotFoundException;
import javaioIOException;
import javaioRandomAccessFile;
public class Test1
{
public static void main(String[] args)
{
long pos = 100;
try
{
String str = "";
RandomAccessFile randomAccessFile = new RandomAccessFile("datatxt", "rw");
randomAccessFileseek(pos);//将文件流的位置移动到pos字节处
while( (str = randomAccessFilereadLine()) != null)
{
Systemoutprintln(str);
}
randomAccessFileclose();
} catch (FileNotFoundException e)
{
eprintStackTrace();
} catch (IOException e)
{
eprintStackTrace();
}
}
}

D1公式
=RIGHT(B2,4)&"-"&IF(--MID(A2,LEN(A2)-1,1)>2,"M","D")&REPT(0,3-LEN(C2))&C2
格式柄下拉复制公式

可以使用MID函数提取一个字符串中的一段字符。
MID 用来返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。
函数 MID 始终将每个字符(不管是单字节还是双字节)按 1 计数。
语法:
MID(text, start_num, num_chars)
参数:
MID函数语法具有下列参数:
Text 必需。包含要提取字符的文本字符串。
Start_num 必需。文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,依此类推。
Num_chars 必需。指定希望 MID 从文本中返回字符的个数。
说明:
如果 start_num 大于文本长度,则 MID 返回空文本 ("")。
如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。
如果 num_chars 是负数,则 MID 返回错误值 #VALUE!。
如果 num_bytes 是负数,则 MIDB 返回错误值 #VALUE!。
示例:
数据 "Fluid Flow " 假设在A1单元格。
=MID(A2,1,5) 上面字符串中的 5 个字符,从第一个字符开始 (Fluid) 。
=MID(A2,7,20) 上面字符串中的 20 个字符,从第七个字符开始 (Flow) 。
=MID(A2,20,5) 因为要提取的第一个字符的位置大于字符串的长度,所以返回空文本 ()。

bit a;
a=(ADCPSRA)&(0x08);
比如ADCPSRA=11011000,和
00001000位与一下,就可以把该位取出来,结果是1,如果ADCPSRA=11010000,位与一下就是0,我说的对吗


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13333130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存