C/C++提供了六个位运算操作符,可以对整数进行位运算,下面分别来介绍这六种位运算符。
(1)按位与&
将两个操作数的每一个二进制位进行逻辑与运算。
例如:3&5
3:00000011
5:00000101
3&5:00000001
按位与操作有以下两个特别的用处:将某个操作数的若干位置0;取操作数的若干指定位。
1: char a = a & 0xfe; //将char类型变量a的最低位置0
2: char c;int n;c=n&0xff //将int类型变量n的低8位赋给char类型变量c
(2)按位或| 将两个操作数的每一个二进制位进行逻辑或运算。 例如:
3:00000011
5:00000101
3|5:00000111
按位或可以将操作数的某些指定位置1。
1: int a; a = a | 0xff;//将int a的低8位置1
(3)按位异或^
将两个操作数的每一个二进制位进行逻辑异或运算。运算规则:对应位相同,异或结果为0;对应位不同,异或结果为1。
例如:
3:00000011
5:00000101
3^5:00000110
异或的特殊功能:某位与0异或,结果与原数值相同;某位与1异或,结果与原数值相反。
举例:要使00001111低四位反转,只需将其与0xf异或
00001010
00001111
^00000101
(4)按位取反~
对操作数的每个二进制位取反。这个就不细说啦。
(5)左移位<<;
按照运算符右侧操作数指定的位数将左侧操作数二进制值向左移动。低位补0,高位舍弃。
(6)右移位>>;
按照运算符右侧操作数指定的位数将左侧操作数二进制值向右移动。低位舍弃;无符号数高位补0,有符号数高位要么补0,要么补符号位。
掌握位运算一方面要牢记概念,另一方面需要注意各种位运算的特点。
分享到:
相关推荐
C/C++四则运算计算器Qt源码
功能:读取一个*.txt文件 把里面的数字(以及字母)转换成乱码并保存; 再读取乱码*.txt文件 把里面的乱码转化为原来的数字(以及字母)并保存。
用C语言实现四则运算,包括加减乘除以及括号,输入一个正确的算术表达式可正确输出结果,具体的实现思路是将算术表达式按序输入一个栈中,然后根据括号的位置以及左右半括号属性来判断运算顺序
在C/C++与汇编语言混合编程的情况下,一般我们都会选择C/C++来实现所期待的大部分功能,对于少数和硬件关联度高(例如操作某些CPU寄存器)以及对运算的实时性要求高(例如高速、多点的FFT)的功能才使用汇编来实现,这就...
数据结构的实验 用C/C++写的 多项式运算 一定准确
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
用于计算十六进制的异或运算,内含源文件以及执行文件
用C/C++语言实现计算机内部,运算器基本算术运算和逻辑运算,包括:原码一位乘法、补码一位乘法(Booth)、原码加减交替除法、补码加减交替除法、逻辑左右移位、逻辑与、逻辑或、逻辑非、逻辑异或。由控制器从ins_...
MATLAB 2010b 中使用GPU运算,调用C/C++程序,常见问题及解决
写的比较漂亮的一个高精度四则运算 压位只需改两个const即可~非常方便
「C/C++」课程作业:分数类及复数类的定义及其四则运算 C++将关于类的操作以成员函数的形式在类定义中实现,针对分数的四则运算和关系运算,我们需要通过代码在分数类中逐一实现四则运算和关系运算对应的功能。 而+...
用面向对象语言编写的源程序,实现复数四则运算功能
同时学习LINUX和C/C++ Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式...
有关大数的相关运算库的源代码说明,下载。。
C/C++实现的基二的FFT运算,包括DIT和DIF,同时也包含直接进行的DFT运算。代码内有详细的说明。
c/c++与java互通 AES加密解密; 只使用基本string,数组运算实现加密算法;不依赖其它加密lib
C++ QT 矩阵运算器。 使用QT、C++开发的矩阵运算器,支持加减乘和转置(对左边矩阵进行转置),底层数据结构使用的是稀疏矩阵,用数组实现。 C++、QT
本文详细叙述了C/C++的位操作,这是C/C++程序设计中非常重要的概念。本文实例对于C/C++初学者来说也具有很好的复习与参考价值。具体分析如下: C/C++对位操作有如下方法: 一、位操作运算符(注意:下面几个运算符不...
自己写得大数浮点数幂运算(c++实现),系poj acm 的problem:1001的实现