注册 登录
编程论坛 C++教室

对于位向量的疑惑

doom5211 发布于 2007-06-13 19:19, 890 次点击

在C++ primer 上学习了位操作符,知道C++有两种方式支持位向量,一是用内置整值类型来表示位向量,最典型是用unsigned int,另一种是提供了bitset类,支持位向量的类抽象.对于第一种方式,如果定义一个unsigned int a=3, b=5;是不是把3和5都换成2进制后再进行位操作?比如按位或,按位与什么的.

3 回复
#2
aipb20072007-06-13 19:30
计算机只认识 0 和 1

3,5是给你认的!
#3
doom52112007-06-13 20:03
例如题目 unsigned int ui1=3, ui2=7
ui1&ui2 结果是否为 011&111=011=3 ?
ui1与ui2按位或是否为011与111按位或为111=7?
目前对与位向量比较模糊,概念理解的不是很清晰,书上讲的也不清楚.
#4
doom52112007-06-13 21:31

不好意思又加一个问题:
例如给定一个inline 函数
inline bool bit_on(unsigned int ui, int pos),
{
return ui&(1<<pos);
}

用来测试某一位是否为0,为什么ui&(1<<pos)这个操作后返回的是布尔型的值啊?就是用ui 这个整值类型与1向左移动pos后的向量按位与后应该也是一个向量啊??

1