C/C++提供了六个位运算操作符,可以对整数进行位运算,下面分别来介绍这六种位运算符。 (1)按位与& 将两个操作数的每一个二进制位进行逻辑与运算。 例如:3&5 3:00000011 5:00000101 3&5:00000001 按位与操作有以下两个特别的用处:将某个操作数的若干位置0;取操作数的若干指定位。 3:00000011 5:00000101 3|5:00000111 按位或可以将操作数的某些指定位置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++中的位运算
原创
©著作权归作者所有:来自51CTO博客作者wawlian的原创作品,请联系作者获取转载授权,否则将追究法律责任
1: char a = a & 0xfe; //将char类型变量a的最低位置0 2: char c;int n;c=n&0xff //将int类型变量n的低8位赋给char类型变量c
1: int a; a = a | 0xff;//将int a的低8位置1
上一篇:类图及类图中的关系(2)

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
byte&0XFF的基础
前言最近在做代码相关的优化,找到了一个二进制转十六进制的方法:/** * 二进
byte 0xff 补码 16进制 反码