简单问题:位向量是什么意思?(新人!分不多)
C++ 中的位向量是什么意思?
还有就是位操作符,大虾们可以深入浅出的介绍一下吗?谢谢了!
问题点数:20、回复次数:7Top
1 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2003-08-04 01:45:11 得分 5
位操作符可以处理某个数的个别的位,只针对位,思想和那些&&,||一样
&(与操作)
|(或操作)
^(异或操作)
~(非操作,也叫补运算符,就是取反)
除了~,其他的都可以和"="一起用,例如&=,
移位操作符
<<将左值按位向左移动,>>将左值按位向右移动
记住下面的式子就行了
A<<X,[向左移动X个位] 可看作 A=A*(2^X) A乘以2的X 次方
A>>X,[向右移动X个位] 可看作 A=A/(2^X) A除以2的X 次方
位向量概念不知道
Top
2 楼simouse()回复于 2003-08-04 02:25:03 得分 2
向量是标准库(STL)里的一个容器,很像堆栈,名是vector,你可以在msdn里打到一些用它的方法。Top
3 楼antijpn(antijpn)回复于 2003-08-04 04:31:36 得分 3
不会是bitset?操作方法上面和vector很像,但是里面装的却是位流(不应该这么说,但是我找不到更好的说法)Top
4 楼lemon520(喷血)回复于 2003-08-04 10:09:38 得分 0
我是看的C++Primer里面的第4章11节!也就是楼上的大虾说的bitset的前一章!
里面有个30个学生的例子,是把一个整数的27位设置为1,其他为零!
我就是不懂一个整数怎么会有27位?难道是2进制?
还有就是:unsigned int quiz 1 = 0;
1 << 27; //这个表达试的值是什么?
quiz1 |= 1 << 27;
这三句话怎么理解呀?quiz1是一个0,只有一位?那它怎么和后面这个东西“按位或”?
多谢大家了!分不够再加!!!!!!!!!Top
5 楼WindsonZhL(风之子)回复于 2003-08-04 10:25:00 得分 10
位向量应该是指<bitset>,<vector> 英文原意虽为“向量”,但在标准库中一般称为动态数组。Top
6 楼WindsonZhL(风之子)回复于 2003-08-04 10:53:34 得分 0
这里的“位”是指数据位,不是数字位。
在C/C++里,char是8位(1字节),short是16位(2字节),int、long和float是
32位(4字节),double是64位(8字节),long double是80位(10字节)。
举例来说,2是二进制10,2位;4是二进制100,3位;65535是二进制1111 1111 1111 1111,
16位。无符号整型最高可到4,294,967,295,变成二进制正好是32位。
1<<27(1左移27位) = 1乘以(2的27次方)= 134 217 728
quiz1 |= 1 << 27 → quizl = quizl | ( 1 << 27 ) → quizl = 0 | 134 217 728 =
134 217 728Top
7 楼WindsonZhL(风之子)回复于 2003-08-04 10:56:49 得分 0
补充一下,上面的举例只是为了说明问题。实际上,short型的0、1、2等仍是16位(前面若干位均为0),int型的仍是32位。Top




