1. 首页>动态要闻 > 信息

怎么把两个8位数合成16位

作者:马夕
2020-05-17
信息

1. 怎么把16位二进制分为高低2个的8位二进制

告诉你两种方法:

1.用共用体

因为共用体里的变量是共用一块内存,可以定以一个char c[2],再定义一个2字节的变量s,

用的时候分别取c[1],c[2]就好

union union_item

{

char c[2];

short s;

}x;

int main()

{

s=0xff00;

printf("%d",x.c[1]);

}

这样就能把高低字节分开了

2.用移位的方法

相对于第一种方法更简单

假设16位数为eeff,你把该数与上00ff,即可得到低八位,高八位同理,与完了再右移8位或者一开始就右移八位,就能得到高八位了。

与符号为&

右移符号>>

2. 最近在做串口通讯的上位机程序,我是要将两组8位数据合成16位数

不一定要把两组数据合起来,关键是先确定好通信协议和接收数据的方法。

比如你直接发送 aa 和 bb是很不好的习惯,至少应该将该指令封装成一个规范的指令帧,

比如:帧头+长度+数据体+校验,举例aa bb指令:(5a a5 02 aa bb 校验和),其中

5a a5为两个字节的帧头,02表示数据体长度为2个字节,aa bb即时数据体,校验和是前面5个字节的累加和的低字节。当把不同的指令按照相同的帧格式封装好后,程序可以按照帧格式接收完整的数据帧后,再分析数据体是何指令,进行相应的动作,有了相同的帧格式,一个串口就可以接收下来并区分开两组数据。两组数据相互独立,一组出现问题,另一组不会受到影响。出现错误是随机的,只能由计算机判断出错误的数据并删掉。尽量降低错误的出现。

怎么把两个8位数合成16位

推荐阅读
  • 日照好玩的地方和吃海鲜应该去哪听说日

    日照好玩的地方:万平口:"旅游来日照,必到万平口",已成为各地游客的共识。刘家湾赶海园:以赶海系列活动为主,集旅游、休闲、度假、民俗、健身于一体的综合旅游园。竹洞天:位于山东省日照市城区西端的将帅沟毛竹…

    信息 2024-09-21
  • 什么是铸造

    铸造是指将室温中为液态,但不久后将要固态化的物质倒入特定形状的铸模待其凝固成形的加工方式。 被铸物质多半原为固态但加热至液态的金属(例:铜、铁、铝、锡、铅等),而铸模的材料可以是沙、金属甚至陶瓷。 因应…

    信息 2024-09-21
  • 变形金刚中博派和狂派各有哪些人物

    博派:擎天柱,铁皮,大黄蜂,爵士,棘齿。狂派:威震天,红蜘蛛,眩晕,吵闹,萨克,碎骨魔,路障,迷乱。…

    信息 2024-09-21
  • 一平方毫米的铜线能过多少安的电流

    1平方毫米的铜线在不同电流下通过的安培数不同。最大是18A:(1)60A以下,选1平方毫米的铜线安全载流量是6A;(2)60~100A,选1平方毫米的铜线,安全载流量是5A;(3)100A以上,选1平方毫米的铜线,安全载流量是2.5A 。…

    信息 2024-09-21
  • 中华人民共和国城乡规划法第四十条有规

    自2008年1月1日起施行的《中华人民共和国城乡规划法》第四十条:在城市、镇规划区内进行建筑物、构筑物、道路、管线和其他工程建设的,建设单位或者个人应当向城市、县人民政府城乡规划主管部门或者省、自治区、直辖…

    信息 2024-09-21