一. 位操作基础
基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:
注意以下几点:
1. 在这6种操作符,只有~取反是单目操作符,其它5种都是双目操作符。
2. 位操作只能用于整形数据,对float和double类型进行位操作会被编译器报错。
二 . 程序实例
#include<iostream>
using namespace std;
//std::hex 十六进制输出
int main()
{
// int a =0xffffffff;
unsigned int a= ~0;//~在移植方面有优点,建议多使用
cout<<"a=0x"<<hex<<a<<endl;
int b = 32;//b =0x20;
// b = 0x20;
b = b | 1<<10;
cout<<"b=0x"<<hex<<b<<endl;
return 0;
}
输出结果
解析:int的位数在不同的编译器中是不同的,但不会少于16位。
在16位编译器中,一个int是16位的,在32位的编译器中,一个int是32位的。
这个你要看你所使用的编译器手册。int表示一个有符号整数,是英文interger(整数)的缩写。
如果是16位的int,表示数的范围是-32768~+32767。
如果是32位的int,表示数的范围是- 2147483648~+ 2147483647
这里的oxfffffffff 每一个f表示4位二进制数 有8个4位二级制数 对应就是32位