加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++位运算符详解(异或运算符和移位运算符)

发布时间:2020-12-16 05:24:43 所属栏目:百科 来源:网络整理
导读:什么是位运算 位运算符按二进制进行运算,这些运算符只能用于整数类型的操作。如:char,short,int,long 通过位运算符来获取高位值和低位值 int a=0x1234; int high,low; high = (a8) low = a 左移运算符和右移运算符(和) 左移是将一个二进制数,移动若干位,

什么是位运算

位运算符按二进制进行运算,这些运算符只能用于整数类型的操作。如:char,short,int,long

通过位运算符来获取高位值和低位值

int a=0x1234;

int high,low;

high = (a>>8) &0x00ff;

low = a & 0x00ff;

左移运算符和右移运算符(<<和>>)

左移是将一个二进制数,移动若干位,右边空出的位置用0来填补,高位左移溢出应该舍弃该高位。

如:inta = 8,a = 00001000;

a<<2则a =00100000;所以a的值为a*2^2 = 32;

左移过程中,如果这个数被溢出舍弃的高位不包含1,则移完后的值就是这个值*2^移动的位数.

右移是将一个二进制数,右移若干位,左边空出的位置用0来填补(如果是无符号类型,如果是有符号类型则根据操作系统的规定来补全。有些操作系统是用符号位来填补,有些操作系统默认是按照0来填补)。

异或(^)

两个参加二进制运算的值相同为0,否则为1

1.  与0异或,保留原来的值

2.  交换两个值,不用临时变量

a=3,b=4

a= a^b;

b= b^a;(b=b^a^b)

a= a^b;(a^b^a^b^b)

以上这篇C++位运算符详解(异或运算符和移位运算符)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读