今天看hk文档,有一串代码不是很懂什么意思:

alarm_msg.alarm_linkage.trigger_record_chan |= (0x1 << 1); /* bit1 - record the first channel (为什么要这么操作?)*/

首先x << k = x ^ k,如:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main() {int a = 0x1 << 1;   //2int b = 0x1 << 2;   //4int c = 0x1 << 3;   //8int d = 0x1 << 4;   //16int e = 0x1 << 5;   //32int f = 0x1 << 6;   //64int g = 0x1 << 7;   //128int h = 0x1 << 8;   //256int i = 0x1 << 9;   //512return 0;
}

再用=|符号可以实现让得某位置1:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main() {int a = 0;int b = 0;int c = 0;int d = 0;a |= (0x1);  //1b |= (0x1<<1);  //2c |= (0x1<<2);  //4d |= (0x1<<3);  //8return 0;
}

有什么用?(根据某大佬的回答。。。)

这个整数的 bits 被视为开关,英文可能为 composite flags 或者 flags。中文可能被翻译成组合值。比如一个 uint32_t 可以表示 32 个相互独立的开关。还有一种是从 1,2,3,4,5 这样一直连续递增的数值(这种整数只看它的整体实际数值,某个 bit 没有任何物理意义),这个应该怎么叫我也不记得了,可能没什么叫法。注意这两者的区别。还有的整数的 bits 被分段划分为同时有以上两种用法(根据设计者的设计)。

参考文章1:C语言为什么要左移位<<?

参考文章2:KYSL 海康摄像头 HEOP报警组件集成开发指南.pdf

C语言左移位符号 << 结合 |= 实现置位操作相关推荐

  1. C语言中的左移位和右移位

    移位操作只是简单地把一个值的位向左或右进行移动. 1. 左移位 符号:<< 在左移位中,之最左边的几位被丢弃,右边多出来的几个空位则由0进行补齐. 例如:01101101 << ...

  2. C语言基础位运算符号

    C语言基础位运算符号 1.<< 左移 00011000 << 3 = 11000000(便携的赋值方法:<<=) 2.>> 右移 00100100 &g ...

  3. c语言左边自动补零,c语言左移4,余位补零 时不时乘以16?

    c语言左移4,余位补零 时不时乘以16?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言左移4,余位补零 时不时乘 ...

  4. 符号位处理方式 c语言,C语言位域解析符号位扩展规则

    从一个例子说起: int main(void){ union{ int i; struct{ char a : ; char b : ; char c : ; }bits; }num; printf( ...

  5. C语言单片机位运算——看完马上懂(个人总结)

    位运算:    0XF => 1111    0XF0 => 1111 0000    0X0F0F=0XF0F => 1111 0000 1111 &(与):    C语言 ...

  6. c语言位运算负数的实例_一招教你学会C语言中位运算

    程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作.注意,位运算只针对于整数进行操作. 运算符号 运算规则 1.&与运算:对应两个二进 ...

  7. 常见位操作及运算应用举例:1,C语言中位运算符异或“∧”的作用​​​​​​​2,异或运算的作用3,(与运算)、|(或运算)、^(异或运算)

    1 C语言中位运算符异或"∧"的作用: 异或运算符∧也称XOR运算符.它的规则是若参加运算的两个二进位同号,则结果为0(假):异号则为1(真).即0∧0=0,0∧1=1,1∧1=0 ...

  8. c语言中各个符号的意义及作用是什么,C语言特殊符号意义

    初学者可以来学学,包教包会 C语言中像%D &%f符号的作用说一下 最佳答案 C语言中的符号 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算.包括加(+).减(- ...

  9. c语言中0x11是多少,C语言中的符号

    C语言中的符号 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算.包括加(+).减(-).乘(*).除(/).求余(或称模运算,%).自增(++).自减(–)共七种. 2. ...

最新文章

  1. 【jstl】jstl的基本操作
  2. 写给云栖社区在做网站的朋友一点干货
  3. EIGRP-2(EIGRP的路由认证)
  4. Xamarin Essentials教程使用加速度传感器Accelerometer
  5. 这样配置,让你的 IDEA 好用到飞起来!
  6. 【Android FFMPEG 开发】Android 中执行 FFMPEG 指令 ( 集成 FFmpegAndroid 框架 )
  7. Chap2-构造函数语意学
  8. resolv.conf
  9. Jtopo对象属性大全
  10. mysql recordcount_Filter 和 RecordCount 属性示例 (VB)
  11. ELK抓取AWS-ELB日志的logstash配置文件
  12. HIVE中 ROW_NUMBER() OVER() 函数
  13. 如何快速将小写字母转变为大写
  14. 如何将卫星影像或者航拍影像叠加到CAD设计图上(Auto CAD版)
  15. 高数 | 洛必达法则的隐藏细节、广义洛必达法则(分母无穷直接洛必达)使用条件
  16. Unity3D Android接入FCM推送
  17. 《人物五官morpher制作工艺》
  18. mysqladmin的用法简介
  19. 3_按钮开关控制的计算机串口通信
  20. 2023值得入手的小米电视推荐 小米75寸电视哪款性价比高?

热门文章

  1. junit 案例(三)
  2. Ajax异步请求登录
  3. SAP创建生产订单时要求输入销售订单
  4. SAP SD定价技术分析
  5. BAPI_SALESORDER_CREATEFROMDAT2 BAPI创建VA01 销售订单
  6. 客户关系管理SAP整体解决方案
  7. ABAP性能优化之正确使用”move” 语句
  8. 关于SAP 对生产订单的月度结算
  9. 发挥数据库价值,企业实现最大数据价值挖掘的路径在这里
  10. “李子柒”们的商业模式,到底需不需要微念