字母移位C语言,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’。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值