`
jgsj
  • 浏览: 963201 次
文章分类
社区版块
存档分类
最新评论

C语言之位移位运算符和按位运算符

 
阅读更多

近期做串口实验,遇到将十六进制转换成char型字符的问题,程序中用到了位移位运算符和按位或运算符

a. 位移位运算符

<< 左移,>>右移

运算符左边为移位对象,右边为要移的位数。移位对象为整数值(若 char a = 61, 则 a 也可以作为移位对象,若 char a = ‘a’,则会出错。总之,你要移的对象一定是一个整数)。若为左移,不论是有符号还是无符号,移出位丢失,空出位补0;若为右移,对于有符号,空出位补原符号位。

例子:

int a = 5;

a >>= 1; // 此时a为2,右移一位相当于除2(速度上要比除法快)

注:a >> 1, a 本身的值不会改变, a >>= 1 相当于 a = a >> 1


b. 按位或运算符

char a;

char b = 4;

char c = 12;

a = (b << 4) | c;

打印 a 为 'L'

b 的二进制表示为 100, 左移4位为 1000000, c 的二进制表示为 1100,二者或运算(相应位有1则1),结果为 1001100,对应十进制为76,对应字符‘L’。


分享到:
评论

相关推荐

    C语言中位移位运算符[借鉴].pdf

    C语言中位移位运算符[借鉴].pdf

    简单总结C语言中的运算符优先级

    C语言中有很多运算符,除了四则运算,还有位运算、比较运算、逻辑运算、赋值运算等等,令人眼花缭乱的同时,优先级也让人头疼。通常建议在写代码的时候不用省略括号,但是并不是所有程序员都会按照这个规矩来,因此...

    C语言之移位操作

    C语言一同提供了六种位运算的运算符,分别为&(按位与),|(按位或),~(按位取反),^(按位异或),&lt;&lt;(左移),&gt;&gt;(右移)。本次我们进行移位操作的分析,看看在不同情况下移位操作的情形。  (1)变量为...

    C语言符号优先级,提供参考

    //移位运算符:&lt;&lt; &gt;&gt; ,关系:&gt; &lt; &gt;= 等 等于(与)不等排第七; //即== != 位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|) "三分天下"八九十; 逻辑或跟与; //逻辑运算符:|| 和 && 十二和十一; //注意...

    VB基础操作 -- VB位操作

    资料备份,VB基础操作,VB位操作。 C语言有移位运算符,移位很方便。 VB是高级语言,没有移位运算符,该工程就是VB中的移位函数。

    C语言运算符及其优先级汇总表口诀

    C语言运算符及其优先级汇总...,凡指的是按位取反运算符~,增减指的是自增和自减运算符++和–,富指的是负号运算符-,强指的是类型转换运算符(类型),针指的是指针运算符*,地指的是地址运算符&,长指的是长度运算符S

    c语言程序设计标准教程

    位运算符只有逻辑运算和移位运算两类。位运算符可以与赋值符一起组成复合赋值符。如&=,|=,^=,&gt;&gt;=,等。 4. 利用位运算可以完成汇编语言的某些功能,如置位,位清零,移位等。还可进行数据的压缩存储和并行运算。 5....

    运算符优先级与结合性

    C语言运算符及其优先级汇总表口诀  圆下箭头一顿号  非凡增减富强针地长  三乘除,四加减,五移位  千万别把鱼忘记,它在盛饭的厨子里  小灯大灯灯灯不等  爸喂鱼,舅疑惑,裸鸡也疑惑  十三姨,十四父,十五...

    图文详解C语言位运算基础知识

    C语言位运算基础知识分享给大家,希望对大家有帮助。 1. 程序中的所有数在计算机内存中都是以二进制的形式储存的。... 您可能感兴趣的文章:C语言位运算符:与、或、异或、取反、左移与右移详细介绍c语言中用位运算实

    Objective-C2.0程序设计

    4.5.5 向左移位运算符 4.5.6 向右移位运算符 4.6 类型:_Bool、_Complex和_Imaginary 4.7 练习 第5章 循环结构 5.1 for语句 5.1.1 键盘输入 5.1.2 嵌套的for循环 5.1.3 for循环的变形 5.2 while语句 5.3 do语句 5.4...

    51单片机-for语句do...while语句if...else...语句产生随机数rand()C语言常用基本语句例程源码

    51单片机-C语言for语句do...while语句if...else...语句产生随机数rand()常用基本语句例程源码 do...while语句 for语句 if...else......switch-case-break语句 while与do...while区别 ...逻辑与或非和按位与或非区别

    c语言经典案例

    实例059 求各位数之和为5的数 75 第6章 数据输入与输出函数 77 实例060 使用字符函数输入/输出字符 78 实例061 输出相对的最小整数 79 实例062 将小写字母转换为大写字母 80 实例063 水池注水问题 80 实例064 用*号...

    宋劲彬的嵌入式C语言一站式编程

    1.1. 按位与、或、异或、取反运算 1.2. 移位运算 1.3. 掩码 1.4. 异或运算的一些特性 2. 其它运算符 2.1. 复合赋值运算符 2.2. 条件运算符 2.3. 逗号运算符 2.4. sizeof运算符与typedef类型声明 3. Side Effect与...

    单片机的C语言程序设计与应用课程教学大纲.doc

    教学时数: 8学时 教学内容: 3.1 单片机的并行口(2学时) 介绍51单片机的4个并行I/O口的特点,了解每个端口既可以按字节单独使用,也可以 按位操作,各个端口可作为一般的I/O口使用,大多数端口又可以作为第二...

    你必须知道的495个C语言问题(PDF)

    3.6 可是&& 和|| 运算符呢?我看到过类似while((c = getchar()) != EOF && c != ’nn’) 的代码⋯⋯ . . . . . . . . . . . . . . . . . . 14 3.7 我怎样才能理解复杂表达式?“序列点” 是什么? . . . . . . . . ....

    C语言FAQ 常见问题列表

    o 4.6 可是 && 和 || 运算符呢?我看到过类似 while((c = getchar()) != EOF && c != '\n') 的代码 …… o 4.7 我怎样才能理解复杂表达式?``序列点" 是什么? o 4.8 那么, 对于 a[i] = i++; 我们不知道 a[] 的哪...

    C语言编程要点

    10.6. 16位和32位的数是怎样存储的? 151 第11章 调 试 152 11.1. 如果我运行的程序挂起了,应该怎么办? 152 11.2. 如何检测内存漏洞(leak)? 157 11.3. 调试程序的最好方法是什么? 158 11.4. 怎样调试TSR程序? 163 ...

    C 语言编程常见问题解答.chm

    10.6 16位和32位的数是怎样存储的? 第11章 调试 11.1 如果我运行的程序挂起了,应该怎么办? 11.2 如何检测内存漏洞(leak)? 11.3 调试程序的最好方法是什么? 11.4 怎样调试TSR程序? 11.5 怎样获得...

    csdn 翁恺 C 语言程序设计(完) 视频.txt

    P11513.2.1 位运算:按位运算 P11613.2.2 位运算:移位运算 P11713.2.3 位运算:位运算例子 P11813.2.4 位运算:位段 P11914.1.1 可变数组:可变数组 P12014.1.2 可变数组:可变数组的数据访问 P12114.1.3 可变数组...

Global site tag (gtag.js) - Google Analytics