对于位向量的疑惑
在C++ primer 上学习了位操作符,知道C++有两种方式支持位向量,一是用内置整值类型来表示位向量,最典型是用unsigned int,另一种是提供了bitset类,支持位向量的类抽象.对于第一种方式,如果定义一个unsigned int a=3, b=5;是不是把3和5都换成2进制后再进行位操作?比如按位或,按位与什么的.
在C++ primer 上学习了位操作符,知道C++有两种方式支持位向量,一是用内置整值类型来表示位向量,最典型是用unsigned int,另一种是提供了bitset类,支持位向量的类抽象.对于第一种方式,如果定义一个unsigned int a=3, b=5;是不是把3和5都换成2进制后再进行位操作?比如按位或,按位与什么的.
不好意思又加一个问题:
例如给定一个inline 函数
inline bool bit_on(unsigned int ui, int pos),
{
return ui&(1<<pos);
}
用来测试某一位是否为0,为什么ui&(1<<pos)这个操作后返回的是布尔型的值啊?就是用ui 这个整值类型与1向左移动pos后的向量按位与后应该也是一个向量啊??