ios初步学习按位操作数据——写入

知识点:

数据的按位移动 <<,>> 及按位或 |

已知:

手机连接了一个蓝牙设备,在向设备发送数据时,需要将两个编号合并为1个字节的新编号。

样例:

编号1的值为2,编号2的值为1,将两个编号合并,结果为0x21,十进制表示为33。

省心操作:

将两个编号转换为十六进制的字符串,将两个字符串相加,即”2“+”1“=”21“。将结果按照十六进制字符串转换为int数据,得出33。

直接操作数据位

从省心的操作中我们知道,两个编号的值均不大于16,否则合并后的数字将超出一个字节,即大于0xFF。实际情况也是如此,两个编号的最大值为B,即十进制下的11。
于是,我们知道序号1的值为2,二进制表示为00000010。将之左移四位,得出结果00100000。
又已知编号2的值为1,二进制表示为00000001。
将左移后的编号1与编号2合并,得出二进制结果为00100001,十进制表示即为33。

代码如下:
uint8_t id1 = 2;  //
uint8_t id2 = 1;
uint8_t id = (id1<<4)|id2;
printf("id=%d\n",id); // 打印结果33
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.计算机的常识: 计算机之父 -- 冯.诺依曼 计算机最大的奖项 -- 图灵奖,没有诺贝尔奖 Java之父 --...
    元素_1444阅读 633评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,207评论 0 13
  • 由于之前是看书学习java,真正学到java面向对象的时候,才开始看毕向东老师的视频,觉得轻松愉快,甚至有些兴奋和...
    玉圣阅读 401评论 0 3
  • 本章的主要内容有: 2.1节 信息的存储 2.2节 整数的表示 2.3节 整数的运算 2.4节 浮点数 2.5节 ...
    橡树人阅读 397评论 0 3
  • 数据类型 Java是一种强类型语言,即意味着必须为每一个变量声明一种类型。在Java中一共有8种基本数据类型,其中...
    Steven1997阅读 1,014评论 0 2